@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0e1515;--surface:#151f1e;--line:#2a3c36;--gold:#e5bf7a;--cyan:#85c9ca;--text:#eeeede;--muted:#9eafa6;--dim:#7d9387;font-family:'DM Sans',sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 60% 0,#1d2d2a45,transparent 55%),var(--bg);color:var(--text);min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.42;cursor:not-allowed}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',sans-serif}.descent-shell{max-width:1510px;padding:0 40px;margin:auto}.masthead{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand>span{color:var(--gold);font-size:48px}.brand strong{display:block;font:800 25px 'Manrope',sans-serif;letter-spacing:6px}.brand small{display:block;font-size:10px;color:var(--muted);letter-spacing:2.2px;margin-top:3px}.masthead nav{display:flex;align-items:center;height:100%;gap:31px;font-size:.875rem;color:var(--muted)}.masthead nav>*{display:flex;align-items:center;height:100%;padding:0 3px}.masthead nav button{background:transparent;color:var(--muted);font-size:.875rem}.active-nav{color:var(--gold);border-bottom:2px solid var(--gold)}.soul-counters{display:flex;align-items:center;gap:22px;font-size:.75rem;letter-spacing:1px;color:var(--muted)}.currency{color:var(--gold);font-size:1.15rem;letter-spacing:0}.descent-heading{display:flex;justify-content:space-between;align-items:center;padding:27px 0 23px}.eyebrow{font-size:.6875rem;letter-spacing:1.4px;font-weight:500;color:var(--muted);line-height:1.6}.descent-heading h1{font-size:29px;font-weight:500;letter-spacing:-.7px;margin-top:7px}.run-heading{text-align:right;display:flex;flex-direction:column;gap:9px}.run-heading>span{font-size:.6875rem;letter-spacing:1.3px;color:var(--dim)}.run-heading>strong{font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;color:var(--gold)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:25px}.play-column{min-width:0}.canvas-frame{position:relative;width:100%;aspect-ratio:1.6;overflow:hidden;background:#12201f url('arena.webp') center/cover;border:1px solid #465246;border-radius:7px;box-shadow:0 15px 40px #0003;isolation:isolate}#game-canvas{width:100%;height:100%;display:block;touch-action:none;outline:none}.game-overlay{position:absolute;inset:0;z-index:3;background:linear-gradient(100deg,#071212e8,#0b1716c9 48%,#0b171657);backdrop-filter:blur(3px);overflow:auto;display:flex;align-items:center;padding:32px 40px}.game-overlay:empty{display:none}.menu-card{max-width:660px;width:100%}.menu-card>.eyebrow{color:var(--gold);font-size:.75rem}.menu-card h2{font-size:clamp(27px,3vw,45px);font-weight:500;line-height:1.12;letter-spacing:-1.2px;margin:13px 0 17px;max-width:540px}.menu-card>p{font-size:1rem;color:#b7c6bb;line-height:1.7;max-width:490px}.form-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:23px 0 18px}.form-choice{text-align:left;background:#142521c9;border:1px solid #425746;border-radius:4px;padding:13px 13px 14px;display:flex;flex-direction:column;gap:6px;min-width:0;transition:border-color .2s,background .2s}.form-choice:hover{border-color:var(--form-color);background:#1f342bc9}.sprite-portrait{background-image:url('sprites.webp');background-size:400% 200%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;width:78px;height:78px}.form-choice .sprite-portrait{width:76px;height:76px;margin-bottom:5px;align-self:center}.form-choice>strong{font-size:1rem;font-weight:500;color:var(--form-color)}.weapon-label{font-size:.75rem;color:var(--muted)}.form-start{font-size:.75rem;letter-spacing:.4px;color:#d1dbcc;margin-top:10px}.primary-button,.secondary-button{min-height:44px;padding:12px 18px;border-radius:4px;font-size:.875rem;display:flex;align-items:center;justify-content:center;gap:14px}.primary-button{color:#1b271e;background:var(--gold);border:1px solid var(--gold)}.secondary-button{color:var(--muted);background:#15251c50;border:1px solid #435544}.menu-actions{display:flex;gap:12px;margin:22px 0;flex-wrap:wrap}.overlay-note{font-size:.75rem!important;color:var(--muted)!important;line-height:1.7!important;margin-top:10px!important}.memory-shop{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid #405442;padding-top:16px;margin-top:21px}.memory-buy{text-align:left;padding:10px;background:#0b191470;border:1px solid #354b3d;border-radius:3px;display:flex;flex-direction:column;gap:5px}.memory-buy strong{font-size:.8125rem;font-weight:500}.memory-buy span{font-size:.6875rem;color:var(--muted);line-height:1.5}.memory-buy b{font-size:.75rem;color:var(--gold);font-weight:500;margin-top:3px}.memory-buy small{font-size:.625rem;color:var(--dim)}.choice-overlay .menu-card h2{font-size:33px}.gift-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}.gift-choice{min-width:0;text-align:left;border:1px solid #435849;background:#14251dd9;border-radius:4px;padding:18px 14px;display:flex;flex-direction:column;gap:13px}.gift-choice:hover{border-color:var(--gold)}.gift-symbol{font-size:31px;line-height:1;color:var(--gold)}.gift-choice>.eyebrow{font-size:.625rem;letter-spacing:1px}.gift-choice strong{font:500 17px 'Manrope',sans-serif;line-height:1.4}.gift-desc{font-size:.875rem;line-height:1.65;color:var(--muted)}.gift-effects{font-size:.75rem;color:var(--gold);line-height:1.7}.result-stats{display:flex;gap:34px;margin:23px 0}.result-stats>div{display:flex;flex-direction:column;gap:5px}.result-stats strong{font:500 30px 'Manrope',sans-serif;color:var(--gold)}.result-stats span{font-size:.75rem;color:var(--muted)}.result-ability{color:var(--cyan);font-size:.875rem;line-height:1.8;margin-top:14px}.control-strip{display:flex;justify-content:space-between;align-items:flex-start;padding:17px 0;gap:15px;border-bottom:1px solid var(--line)}.control-strip>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:13px;font-size:.75rem;color:var(--dim)}.control-strip>div:first-child>span{white-space:nowrap}.control-strip kbd{font:500 .625rem 'DM Sans',sans-serif;letter-spacing:.3px;border:1px solid var(--line);padding:4px 5px;border-radius:3px;color:var(--muted);margin-right:4px}.control-strip .auto-label{font-size:.6875rem;color:var(--muted);margin-left:4px}.play-tools{display:flex;align-items:center;gap:14px;white-space:nowrap}.play-tools>button{font-size:.75rem;color:var(--muted);padding:3px 0;background:transparent}.play-tools>button:hover{color:var(--gold)}.world-message{display:flex;align-items:center;gap:14px;padding:17px 2px;color:var(--dim)}.world-message>span{font-size:25px}.world-message>p{font-size:.875rem;line-height:1.65;font-style:italic}.run-rail{padding:20px;background:#15201ab0;border:1px solid var(--line);border-radius:6px;align-self:start}.body-heading{display:flex;justify-content:space-between;align-items:center;gap:5px}.body-heading .eyebrow{font-size:.625rem;letter-spacing:1px}.body-heading>span:last-child{font-size:.6875rem;color:var(--gold)}.body-card{display:flex;align-items:center;gap:12px;margin:9px 0 15px}.body-card .sprite-portrait{width:67px;height:67px;flex-shrink:0}.body-card h2{font-size:23px;font-weight:500;line-height:1.2}.body-card>div:last-child>span{display:block;font-size:.75rem;color:var(--muted);margin-top:6px}.status-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.75rem;color:var(--muted);margin-bottom:9px}.status-row strong{font-size:.75rem;font-weight:500;font-variant-numeric:tabular-nums}.health-track,.xp-track{height:4px;background:#ffffff0d;border-radius:2px;overflow:hidden}.health-track>span,.xp-track>span{display:block;height:100%;width:100%;background:var(--gold);transition:width .12s}.xp-track>span{background:var(--cyan);width:0}.memory-row{margin-top:17px}.run-numbers{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.run-numbers>div{display:flex;flex-direction:column;gap:5px}.run-numbers strong{font-size:1.2rem;font-weight:500}.run-numbers span{font-size:.625rem;color:var(--dim)}.rail-section{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.rail-section>.eyebrow{font-size:.625rem}.rail-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.rail-title .eyebrow{font-size:.625rem;letter-spacing:1px}.rail-title>button{font-size:.6875rem;color:var(--gold);padding:0;background:transparent}.mini-map{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,34px);gap:7px;margin-top:15px;position:relative}.map-room{border:1px solid #3f5447;background:#1d302561;border-radius:2px;color:var(--dim);display:grid;place-items:center;font-size:.625rem;position:relative;min-width:0}.map-room.unknown{background:#14221960;border-color:#293c30;color:#4f6659}.map-room.here{border-color:var(--gold);color:var(--gold);background:#d6b47914}.map-room.clear{border-color:#749b76}.map-room>span{padding:2px}.map-note{font-size:.6875rem;color:var(--dim);line-height:1.7;margin-top:11px}.ability-list{display:flex;flex-direction:column;gap:12px;margin-top:15px}.ability{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:.75rem}.ability>span:first-child{font-size:19px;color:#607667;width:21px}.ability.known{color:var(--text)}.ability.known>span:first-child{color:var(--cyan)}.ability small{display:block;font-size:.625rem;margin-top:3px;color:var(--dim)}.boon-list{margin-top:13px;display:flex;flex-wrap:wrap;gap:7px}.boon-list>p{font-size:.75rem;line-height:1.7;color:var(--dim)}.boon-chip{font-size:.6875rem;border:1px solid var(--line);padding:6px 7px;color:var(--muted);border-radius:3px}.boon-chip>b{color:var(--gold);font-weight:400;margin-left:5px}.touch-controls{position:absolute;inset:0;z-index:2;pointer-events:none}.touch-controls[hidden]{display:none}.joystick{position:absolute;left:20px;bottom:19px;width:102px;height:102px;border-radius:50%;border:1px solid #d7e5cc55;background:#081c1480;touch-action:none;pointer-events:auto;backdrop-filter:blur(3px)}.joystick>span{position:absolute;left:30px;top:30px;width:40px;height:40px;border:1px solid #dbe9cf90;border-radius:50%;background:#d2d9b52e}.joystick small{position:absolute;left:0;right:0;text-align:center;bottom:9px;font-size:9px;letter-spacing:1px;color:#d8e1cc;pointer-events:none}.touch-actions{position:absolute;bottom:22px;right:20px;display:flex;align-items:flex-end;gap:12px;pointer-events:auto}.touch-actions button{border-radius:50%;width:68px;height:68px;border:1px solid var(--gold);background:#e5bf7a23;color:var(--gold);font-size:.75rem;touch-action:none;backdrop-filter:blur(3px)}.touch-actions button:first-child{width:50px;height:50px;font-size:.625rem;border-color:#94bca4;background:#203529a8;color:#c6ddc6}footer{display:flex;justify-content:space-between;gap:20px;color:var(--dim);font-size:.6875rem;padding:27px 0 25px;border-top:1px solid var(--line);margin-top:19px}dialog{width:min(640px,calc(100% - 32px));max-height:85dvh;overflow:auto;background:#15221b;color:var(--text);padding:28px 32px;border:1px solid #576c51;border-radius:7px;box-shadow:0 24px 80px #0008}dialog::backdrop{background:#05100cc7;backdrop-filter:blur(6px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.dialog-top>.eyebrow{color:var(--gold)}.dialog-top button{width:32px;height:32px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:23px;color:var(--muted)}dialog h2{font-size:29px;line-height:1.25;font-weight:500;letter-spacing:-.6px;margin-bottom:20px}dialog p{font-size:1rem;color:var(--muted);line-height:1.75}dialog dl{margin-top:25px}dialog dt{font-weight:500;font-size:1rem;color:var(--gold);margin-top:21px}dialog dd{margin:7px 0 0;font-size:.875rem;line-height:1.8;color:var(--muted)}.guide-footnote{font-size:.75rem!important;color:var(--dim)!important;border-top:1px solid var(--line);padding-top:18px;margin-top:23px}.large-map{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,66px);gap:14px;margin:24px 0}.large-map .map-room{font-size:.875rem}.map-key{display:flex;justify-content:space-between;gap:15px;font-size:.75rem;color:var(--muted);border-top:1px solid var(--line);padding-top:15px}.map-dialog>p{font-size:.875rem;margin:20px 0}.map-dialog>.primary-button{width:100%;margin-top:24px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:26px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1400px){.canvas-frame{min-height:650px}.game-layout{grid-template-columns:minmax(0,1fr) 272px}.game-overlay{padding:40px 45px}.menu-card h2{font-size:45px}.form-choice .sprite-portrait{height:89px;width:89px}.run-rail{padding:23px}.run-numbers{margin-top:25px}.rail-section{margin-top:25px;padding-top:21px}}
@media(max-width:1100px){.descent-shell{padding:0 25px}.game-layout{grid-template-columns:minmax(0,1fr) 222px;gap:19px}.game-overlay{padding:25px}.menu-card h2{font-size:32px}.menu-card>p{font-size:.875rem}.form-choices{gap:8px;margin-top:18px}.form-choice{padding:10px}.form-choice .sprite-portrait{width:61px;height:61px}.memory-buy strong{font-size:.6875rem}.memory-buy span{font-size:.625rem}.game-layout .canvas-frame{min-height:510px}.run-rail{padding:17px}.masthead nav{gap:23px}.soul-counters{gap:15px}.control-strip{flex-direction:column;gap:12px}.gift-choices{gap:8px}.gift-choice{padding:14px 10px}.gift-choice strong{font-size:16px}.gift-desc{font-size:.8125rem}.choice-overlay .menu-card h2{font-size:29px}}
@media(max-width:850px){.game-layout{grid-template-columns:1fr;gap:20px}.canvas-frame{min-height:unset!important;aspect-ratio:1.6}.run-rail{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px 24px;padding:20px}.body-heading{grid-column:1}.body-card{grid-column:1;grid-row:2/5;margin:0}.status-row{grid-column:2;margin-bottom:0;align-self:end}.health-track{grid-column:2}.memory-row{grid-column:2}.xp-track{grid-column:2}.run-numbers{grid-column:3;grid-row:1/5;display:flex;flex-direction:column;margin:0;justify-content:center;gap:18px}.rail-section{margin:0;padding-top:18px;grid-column:auto}.mini-map{grid-template-rows:repeat(4,28px)}.descent-heading{padding:24px 0 20px}.control-strip{flex-direction:row}.masthead nav{gap:21px}.soul-counters>span:first-child{display:none}.soul-counters{gap:0}.game-overlay{padding:28px 32px}.menu-card h2{font-size:34px}.menu-card>p{font-size:1rem}.gift-choice strong{font-size:17px}.gift-desc{font-size:.875rem}}
@media(max-width:600px){.descent-shell{padding:0 15px}.masthead{display:grid;grid-template-columns:1fr auto;gap:0;height:auto;padding-top:16px;min-height:108px}.brand>span{font-size:38px}.brand{gap:9px}.brand strong{font-size:21px;letter-spacing:5px}.brand small{font-size:8px;letter-spacing:1.7px}.masthead nav{grid-column:1/-1;grid-row:2;justify-content:center;height:43px;gap:29px;font-size:.875rem}.masthead nav button{font-size:.875rem}.soul-counters{grid-column:2;grid-row:1}.currency{font-size:1rem}.descent-heading{padding:19px 0 17px;gap:15px}.descent-heading .eyebrow{font-size:.5625rem;letter-spacing:1px}.descent-heading h1{font-size:23px;margin-top:6px}.run-heading>span{font-size:.5625rem;letter-spacing:.6px}.run-heading>strong{font-size:.875rem}.canvas-frame{aspect-ratio:.85;max-height:calc(100dvh - 170px);min-height:390px!important;border-radius:5px}.game-overlay{padding:24px 20px;align-items:flex-start;background:linear-gradient(120deg,#081512ed,#0c2015c9)}.menu-card{margin:auto 0}.menu-card h2{font-size:29px;letter-spacing:-.7px;line-height:1.15}.menu-card>p{font-size:.875rem;line-height:1.65}.menu-card>.eyebrow{font-size:.6875rem}.form-choices{gap:7px;margin:19px 0 14px}.form-choice{padding:10px 8px;gap:5px}.form-choice .sprite-portrait{width:62px;height:62px;margin-bottom:3px}.form-choice strong{font-size:.875rem}.weapon-label{font-size:.625rem;line-height:1.5}.form-start{font-size:.6875rem;margin-top:9px}.memory-shop{gap:6px;padding-top:14px;margin-top:17px}.memory-buy{padding:8px 7px}.memory-buy strong{font-size:.6875rem;line-height:1.4}.memory-buy span{font-size:.625rem}.memory-buy b{font-size:.6875rem}.overlay-note{font-size:.6875rem!important}.menu-actions{gap:9px;margin:16px 0}.primary-button,.secondary-button{font-size:.875rem;padding:11px 15px}.gift-choices{grid-template-columns:1fr;gap:10px;margin-top:20px}.gift-choice{display:grid;grid-template-columns:32px 1fr;gap:4px 12px;padding:14px}.gift-symbol{grid-column:1;grid-row:1/4;align-self:center;font-size:27px}.gift-choice .eyebrow{grid-column:2;font-size:.625rem}.gift-choice strong{grid-column:2;font-size:1rem}.gift-desc,.gift-effects{grid-column:2;font-size:.8125rem;line-height:1.5}.choice-overlay .menu-card h2{font-size:28px}.choice-overlay .menu-card>.eyebrow{font-size:.625rem}.run-rail{padding:17px;grid-template-columns:1fr 1fr;gap:12px 19px}.body-heading{grid-column:1;grid-row:1}.body-card{grid-column:1;grid-row:2/5}.body-card .sprite-portrait{height:57px;width:57px}.body-card{gap:8px}.body-card h2{font-size:21px}.body-card>div:last-child>span{font-size:.625rem}.status-row,.health-track,.xp-track{grid-column:2}.status-row{font-size:.6875rem}.status-row strong{font-size:.6875rem}.run-numbers{grid-column:1/-1;grid-row:6;flex-direction:row;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-top:5px}.run-numbers span{font-size:.6875rem}.rail-section{grid-row:7;padding-top:16px;margin-top:8px}.gifts-section{grid-column:1/-1;grid-row:8}.ability{font-size:.6875rem;gap:7px}.ability small{font-size:.5625rem}.ability-list{gap:13px}.map-note{font-size:.625rem}.mini-map{gap:5px;grid-template-rows:repeat(4,28px)}.map-room{font-size:.5625rem}.boon-chip{font-size:.75rem}.control-strip{flex-direction:column;gap:12px;padding:14px 0}.control-strip>div:first-child{display:none}.play-tools{width:100%;justify-content:space-between;gap:20px}.play-tools>button{font-size:.8125rem;min-height:28px}.world-message{padding:14px 1px;gap:10px}.world-message p{font-size:.8125rem}.world-message>span{font-size:22px}footer{font-size:.625rem;flex-direction:column;gap:9px;padding:20px 0;margin-top:18px}dialog{padding:23px;max-height:88dvh}.large-map{grid-template-rows:repeat(4,57px);gap:10px}.large-map .map-room{font-size:.75rem}.map-key{font-size:.625rem;gap:9px}.dialog-actions{flex-direction:column-reverse}.result-stats{gap:24px}.result-stats strong{font-size:26px}.result-stats span{font-size:.6875rem}.touch-actions{right:17px;bottom:20px}.joystick{left:17px;bottom:18px}}
@media(pointer:coarse){.control-strip>div:first-child{display:none}.play-tools{flex:1;justify-content:space-between}.canvas-frame{touch-action:none}}
.menu-card>p{font-size:1rem}.memory-buy strong,.memory-buy b{font-size:.875rem}.status-row,.status-row strong{font-size:.875rem}.play-tools>button{font-size:.875rem}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.online-strip{display:flex;align-items:center;gap:12px;color:#9eb7ad;font-size:12px;padding:8px 0}.online-strip strong{font:600 16px monospace;letter-spacing:3px;color:#edc78d}.online-strip button{margin-left:auto;background:none;border:1px solid #435449;color:#b9c8b8;border-radius:5px;padding:5px 10px}.room-code{display:block;font:600 30px monospace;letter-spacing:7px;color:#f1cb8c;margin:22px 0}.journal-dialog{max-width:740px}.journal-entries article{border-left:2px solid #6d8a79;padding:2px 0 4px 20px;margin:24px 0}.journal-entries h3{font-family:Georgia,serif;font-size:24px;margin:8px 0}.bestiary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bestiary article{background:#ffffff05;padding:12px;border:1px solid #59695655;border-radius:8px}.bestiary h4{color:#e6c499;margin:0}.bestiary p{font-size:13px;margin-bottom:0}#online-dialog label{display:block;color:#e4c799;margin:12px 0 8px}#online-dialog select,#online-dialog input{box-sizing:border-box;width:100%;padding:12px;border:1px solid #667866;border-radius:7px;background:#111e19;color:#eee2c8;font:inherit}#online-dialog input{text-transform:uppercase;letter-spacing:3px}.room-join{margin-top:24px;padding-top:10px;border-top:1px solid #64766355}#online-dialog button.primary-button,#online-dialog .room-join button{margin-top:12px}#online-error{color:#efbca7;min-height:22px}dialog p{line-height:1.65}@media(max-width:600px){.bestiary{grid-template-columns:1fr}.room-code{font-size:23px;letter-spacing:5px}.masthead nav{flex-wrap:wrap;gap:8px}.menu-card{padding:20px 16px}}

/* v0.4: window-sized arena, keyboard choices, and between-life equipment. */
.game-overlay{align-items:safe center}.game-overlay h2,dialog h2{outline:none}.form-choice>*{pointer-events:none}.form-choice:focus-visible,.gift-choice:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.form-start kbd{border:1px solid #697563;border-radius:3px;padding:1px 5px;margin-right:5px;font:inherit}.gift-choice{position:relative;padding-top:32px}.choice-number{position:absolute;right:12px;top:10px;color:var(--gold);font-size:12px;border:1px solid #6f7755;padding:2px 6px;border-radius:3px}.mini-map,.large-map{grid-template-columns:repeat(4,minmax(0,1fr))}.map-room{overflow-wrap:anywhere}.forge-dialog{width:min(850px,calc(100% - 32px))}.forge-balance{color:var(--gold)!important;margin:18px 0}.equipment-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.equipment-card{display:flex;gap:12px;border:1px solid #4f6150;border-radius:5px;background:#0e1c1880;padding:15px}.equipment-card.locked{border-color:#364b40}.equipment-icon{flex:none;width:60px;height:60px;background:url('equipment.webp');background-size:300% 200%;background-position:var(--item-x) var(--item-y);background-repeat:no-repeat}.locked .equipment-icon{opacity:.45}.equipment-card h3{font-size:17px;font-weight:500;margin:6px 0 9px;color:var(--gold)}.equipment-card p{font-size:13px;line-height:1.6;margin:6px 0}.equipment-card .eyebrow{font-size:10px;letter-spacing:.8px}.equipment-card .item-effects{color:#aed4c9}.equipment-card .item-origin{color:#93a69b;font-size:12px}.item-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.item-actions button{font-size:12px;min-height:38px;padding:9px 11px}.forge-memories{font-size:19px;font-weight:500;margin:27px 0 8px}.forge-dialog .memory-shop{margin-top:12px}.gear-section .boon-chip{font-size:12px}.play-tools button:disabled{opacity:.4;cursor:default}
@media(min-width:851px){.masthead{height:66px}.masthead nav{gap:20px}.descent-heading{padding:15px 0 13px}.descent-heading h1{font-size:26px}.canvas-frame,.game-layout .canvas-frame{aspect-ratio:auto;height:clamp(320px,calc(100dvh - 195px),760px);min-height:0}.game-overlay{padding:25px 32px}.menu-card h2{font-size:clamp(29px,3vw,42px);margin:10px 0 13px}.form-choices{margin:17px 0 13px}.form-choice .sprite-portrait{width:68px;height:68px}.menu-actions{margin:15px 0}.menu-card>p{font-size:15px}.run-rail{max-height:calc(100dvh - 195px);overflow:auto;scrollbar-width:thin}.control-strip{padding:10px 0;flex-direction:row}.control-strip .auto-label{display:none}.online-strip{padding:5px 0}.world-message{padding:10px 2px}.world-message p{font-size:13px}.choice-overlay .gift-choices{margin-top:17px}.gift-desc{font-size:13px;line-height:1.5}.gift-choice{gap:10px}.gift-choice strong{font-size:16px}.soul-counters{gap:14px}}
@media(max-width:850px){.gear-section{grid-row:auto}.menu-card{padding:0}.masthead nav{gap:13px;flex-wrap:wrap}.large-map{gap:8px}.large-map .map-room{font-size:12px}}
@media(max-width:600px){.equipment-grid{grid-template-columns:1fr}.equipment-card{padding:13px}.gear-section{grid-column:1/-1;grid-row:8}.gifts-section{grid-row:9}.gift-choice{padding-top:15px;padding-right:35px}.choice-number{top:12px;right:10px}.masthead nav{gap:12px;font-size:12px}.masthead nav button{font-size:12px}.canvas-frame{max-height:calc(100dvh - 210px);min-height:360px!important}.menu-card{padding:0}.game-overlay{padding:20px}.form-choice .sprite-portrait{width:53px;height:53px}.overlay-note{font-size:12px!important}.large-map .map-room{font-size:11px}}
@media(max-height:670px) and (min-width:851px){.game-overlay{align-items:flex-start;padding:18px 25px}.menu-card h2{font-size:29px}.form-choice .sprite-portrait{width:46px;height:46px}.form-choice{padding:9px}.form-choices{margin:12px 0}.form-start{margin-top:3px}.menu-actions{margin:10px 0}.overlay-note{margin-top:6px!important}.choice-overlay .menu-card h2{font-size:27px}.gift-choice{gap:8px;padding:29px 12px 13px}.gift-symbol{font-size:25px}.gift-desc,.gift-effects{font-size:12px}}

/* v0.5: a larger map, full-card pointer activation, and vessel resonance. */
.form-choice{cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}.form-choice>*{pointer-events:none}.game-overlay{overscroll-behavior:contain;scroll-padding-block:20px}.menu-card{flex:none}.mini-map,.large-map{grid-template-columns:repeat(6,minmax(0,1fr))}.mini-map{gap:4px}.mini-map .map-room{font-size:9px;line-height:1.15}.key-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.key-chip{border:1px solid #435548;border-radius:3px;padding:6px 8px;color:#83958a;font-size:12px}.key-chip.found{border-color:var(--key-color);color:var(--key-color);background:#b8cab70a}.health-track>span.hurt{background:#ffac85;box-shadow:0 0 12px #ed987a}.vessel-dialog{width:min(760px,calc(100% - 24px))}.vessel-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.vessel-choice.current{border-color:var(--gold)}.vessel-choice .sprite-portrait{width:66px;height:66px}.vessel-choice:disabled{opacity:.55}.touch-actions .morph-touch{position:absolute;right:8px;top:-56px;width:56px;height:42px;border-radius:8px;font-size:10px;background:#163432cf;color:#9cdbd8;border-color:#77aaa9}.touch-actions .morph-touch[hidden]{display:none}
.map-dialog{width:min(820px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:22px}.map-dialog[open]{display:flex;flex-direction:column;overflow:hidden}.map-dialog>.dialog-top{flex:none;margin-bottom:13px}.map-dialog>h2{flex:none;margin-bottom:10px}.map-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 2px;scrollbar-width:thin}.map-scroll .large-map{margin:12px 0 18px;gap:8px;grid-template-rows:repeat(4,58px)}.map-scroll p{font-size:13px;line-height:1.65;margin:16px 0 8px}.map-footer{flex:none;border-top:1px solid var(--line);padding-top:13px;margin-top:12px}.map-footer>.primary-button{width:100%;margin:0}.large-map .map-room{font-size:12px;line-height:1.3}.large-map .map-room:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.play-tools{gap:12px}
@media(min-width:851px){.form-choices{margin:12px 0}.form-choice{padding:10px 12px}.menu-card .overlay-note{line-height:1.4!important}.form-start{margin-top:5px}.game-overlay{padding:22px 28px}.play-tools>button{font-size:12px}}
@media(max-width:600px){.map-dialog{padding:17px}.map-scroll .large-map{gap:5px;grid-template-rows:repeat(4,53px)}.large-map .map-room{font-size:10px}.map-key{font-size:10px}.map-footer{padding-top:11px;margin-top:10px}.map-dialog>h2{font-size:25px}.key-section{grid-column:1/-1;grid-row:8}.gear-section{grid-row:9}.gifts-section{grid-row:10}.vessel-choices{gap:8px}.vessel-choice .sprite-portrait{width:50px;height:50px}.vessel-choice{padding:9px 7px}.play-tools{gap:8px;flex-wrap:wrap;justify-content:space-between}.play-tools>button{font-size:12px}.key-chip{font-size:12px}.form-choices .form-choice .sprite-portrait{width:47px;height:47px}.menu-card .overlay-note{font-size:11px!important;line-height:1.45!important}}
@media(max-height:720px) and (min-width:851px){.game-overlay{padding:16px 24px;align-items:flex-start}.menu-card h2{font-size:30px;margin:8px 0 10px}.menu-card>p{font-size:13px;line-height:1.5}.form-choices{margin:10px 0}.form-choice .sprite-portrait{width:43px;height:43px;margin:0 auto 2px}.form-choice{gap:4px;padding:8px 10px}.form-start{margin-top:3px}.menu-actions{margin:9px 0}.menu-actions .secondary-button{min-height:36px;padding:8px 12px;font-size:12px}.menu-card .overlay-note{font-size:11px!important;margin-top:6px!important}.game-overlay .menu-card{padding-bottom:14px}}

.map-room{overflow:visible}.map-link{position:absolute;display:block;background:#799080;width:8px;height:2px;pointer-events:none;z-index:1}.map-link.east{right:-8px;top:calc(50% - 1px)}.map-link.west{left:-8px;top:calc(50% - 1px)}.map-link.north{top:-8px;left:calc(50% - 1px);height:8px;width:2px}.map-link.south{bottom:-8px;left:calc(50% - 1px);height:8px;width:2px}.map-link.locked{background:#a08a60}.map-link.opened{background:#a1d6cd}.mini-map .map-link.east{right:-5px;width:5px}.mini-map .map-link.west{left:-5px;width:5px}.mini-map .map-link.north{top:-5px;height:5px}.mini-map .map-link.south{bottom:-5px;height:5px}.map-room>span{overflow-wrap:anywhere;line-height:1.2}.map-scroll{padding:5px 8px}.map-key{flex-wrap:wrap}.map-scroll .large-map{margin-top:10px}

.game-overlay.body-menu{flex-direction:column;align-items:flex-start;justify-content:stretch;gap:10px;overflow:hidden}.body-menu>.menu-card{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;justify-content:safe center;padding-bottom:8px}.body-menu>.menu-card>*{flex-shrink:0}.menu-hints{flex:none;width:100%;max-width:660px;border-top:1px solid #66807150;padding-top:9px;color:#b7c6bb;font-size:12px;line-height:1.6}.body-menu .form-choices{flex:none}.body-menu .menu-actions{flex:none;margin-bottom:8px}
@media(max-width:600px){.menu-hints{font-size:11px;line-height:1.45;padding-top:8px}.game-overlay.body-menu{gap:7px}}

/* v0.6: realm maps, distinct powers, and equipment sets. */
.small-icon{display:inline-block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;vertical-align:middle;flex:none}.key-chip{display:inline-flex;align-items:center;gap:6px}.mini-map .map-room{font:600 11px ui-monospace,monospace;min-height:29px;overflow:visible;white-space:nowrap;overflow-wrap:normal}.mini-map .map-room>span{overflow-wrap:normal;white-space:nowrap;line-height:1}.map-room.here{box-shadow:inset 0 0 0 1px var(--gold)}.map-room>.small-icon{width:12px;height:12px;position:absolute;right:3px;top:3px}.map-pan{overflow-x:auto;padding:5px 2px}.map-pan .large-map{min-width:570px}.world-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:8px 0 17px}.world-tabs button{border:1px solid #455849;background:#0c211933;border-radius:4px;color:#c4d0c3;text-align:left;padding:10px 9px;font-family:inherit;font-size:12px;line-height:1.4}.world-tabs button.selected{border-color:var(--gold);background:#d9bb7212}.world-tabs b{color:var(--gold);margin-right:5px}.world-tabs small{display:block;color:#94a99c;font-size:10px;margin-top:3px}.map-scroll>h3{font-size:18px;color:var(--gold);font-weight:500;margin:18px 0 0}.map-key{gap:12px!important}.map-key>span{display:inline-flex;align-items:center;gap:4px}.power-button{border:1px solid #728b78;border-radius:4px;padding:10px 13px;background:#173e302e;color:#d3dabc;cursor:pointer;font-size:14px;margin-top:12px;width:100%;text-align:left}.power-button:disabled{opacity:.6;cursor:default}.seal-count{font:11px ui-monospace,monospace;color:var(--gold);margin-top:12px}.power-label{color:#a8ccc1;font-size:11px}.world-equipment{background-image:url('equipment-v6.webp');background-size:400% 300%}.active-set{color:#a8d2bc!important;border:1px solid #5a7d5b;padding:12px;border-radius:4px}.set-note{font-size:12px!important;color:#b8c99d!important}.touch-actions .power-touch{position:absolute;right:75px;top:-56px;width:60px;height:42px;border-radius:8px;font-size:10px;background:#263626e6;color:#e1cb8b;border-color:#a28b55}.touch-actions .power-touch:disabled{opacity:.6}.body-menu .menu-actions{flex-wrap:wrap}.map-scroll{flex:1}.vessel-choice .power-label{line-height:1.35}.run-rail .map-note{overflow-wrap:normal}.large-map .map-room>span{hyphens:none}
@media(max-width:600px){.world-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.world-tabs button{font-size:11px;padding:8px}.power-section{grid-column:1/-1;grid-row:4}.power-section .map-note{max-width:none}.power-button{min-height:42px}.map-pan .large-map{min-width:560px}.masthead nav{gap:9px}.vessel-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.map-key{font-size:11px!important}}
/* Vessel mastery and personal controls */
[hidden]{display:none!important}
.skill-dialog,.settings-dialog{width:min(940px,calc(100vw - 24px));max-height:90svh;overflow-y:auto}
.skill-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:20px 0}
.skill-tabs button{border:1px solid var(--line,#42604b);background:#17251f;color:#cadacc;border-radius:7px;padding:12px 5px;cursor:pointer}
.skill-tabs button.selected{border-color:#e8c48b;background:#344132;color:#f0ce94}
.mastery-overview{display:flex;gap:16px;align-items:center;border:1px solid #3d5441;border-radius:10px;padding:14px;margin-bottom:18px}
.mastery-overview .sprite-portrait{width:64px;height:64px;flex:0 0 64px}.mastery-overview h3{margin:0 0 5px}.mastery-overview p{margin:3px 0;font-size:13px}
.mastery-track{height:4px;background:#293f31;margin-top:8px;border-radius:6px;overflow:hidden}.mastery-track span{display:block;height:100%;background:#d9ba7e}
.skill-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.skill-branch h3{font-size:15px;color:#e6c38a;text-align:center;margin:4px 0 14px}
.skill-node{position:relative;display:block;width:100%;min-height:145px;border:1px solid #57705b;border-radius:10px;background:#172a21;color:#dae5d8;text-align:left;padding:15px;cursor:pointer;font-family:inherit}
.skill-node strong,.skill-node span,.skill-node small{display:block}.skill-node strong{font-size:17px}.skill-node span{margin:8px 0;font-size:13px;line-height:1.5}.skill-node small{font-size:11px;color:#d4b986}.skill-node:disabled{cursor:default;opacity:.68}.skill-node.learned{background:#293c28;border-color:#d7bc81;opacity:1}.skill-node.specialty-node{border-color:#a79065}.skill-node:first-of-type{margin-bottom:28px}.skill-node:first-of-type::after{content:'';position:absolute;width:2px;height:29px;bottom:-29px;left:50%;background:#65846b}
.skill-footer{display:flex;gap:10px;align-items:center;margin:20px 0 3px}.skill-footer p{margin:0;font-size:12px}.skill-node:focus-visible,.binding-list button:focus-visible{outline:2px solid #ead1a0;outline-offset:3px}
.settings-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.settings-sliders label{display:block;color:#cbdacc;font-size:14px}.settings-sliders output{float:right;color:#dfc38c}.settings-sliders input{display:block;width:100%;margin-top:10px;accent-color:#d6b579;min-height:28px}
.binding-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.binding-list button{display:flex;justify-content:space-between;gap:12px;padding:13px;background:#1b2c22;color:#c5d6c4;border:1px solid #49634a;border-radius:6px}.binding-list button.listening{border-color:#f0cd8c}.binding-list kbd{color:#ebc990}
.run-build{margin-top:16px;padding-top:12px;border-top:1px solid #4b5d43}.run-build p{font-size:12px;line-height:1.6;margin:7px 0}.result-stats.extended{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.result-stats.extended strong{font-size:clamp(20px,3vw,30px);overflow-wrap:anywhere}.ending-tag{color:#e5c280}.milestone-options{display:grid;gap:10px}.milestone-options button{white-space:normal;padding:14px}.controller-note{font-size:12px;color:#b8cab8;margin:8px 0}.menu-actions button{white-space:normal}
.masthead nav{min-width:0;flex-wrap:wrap;gap:13px;align-content:center}.masthead nav>*{height:auto;min-height:24px}.masthead .brand,.masthead .soul-counters{flex-shrink:0}
.gift-choice.selected{border-color:var(--gold);background:#35443199;box-shadow:inset 0 0 0 1px var(--gold)}
.story-controls{color:var(--gold)}
.save-info{display:flex;gap:14px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
#save-status{max-width:420px}
@media(max-width:600px){.save-info{justify-content:center;gap:7px 14px}}
@media(max-width:650px){.skill-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-branches{grid-template-columns:1fr}.skill-branch{border:1px solid #334b38;border-radius:10px;padding:12px}.skill-node{min-height:110px}.settings-sliders,.binding-list{grid-template-columns:1fr}.result-stats.extended{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-footer{align-items:flex-start;flex-direction:column}}

/* v0.8: choose a current before entering a life. */
.entry-screen{max-width:1360px;min-height:100svh;margin:auto;padding:clamp(24px,5vw,72px);display:grid;grid-template-columns:minmax(0,1.65fr) minmax(220px,1fr);gap:clamp(24px,5vw,70px);align-items:center}
.entry-copy{position:relative;z-index:1}.entry-copy>.eyebrow{color:var(--cyan)}.entry-copy h1{font:800 clamp(62px,8vw,116px)/.95 'Manrope',sans-serif;letter-spacing:.08em;color:#f3d694;margin:25px 0 20px;text-shadow:0 0 60px #e9c27625}.entry-copy h1 small{display:block;font:500 clamp(12px,1.5vw,18px)/1.8 'DM Sans',sans-serif;letter-spacing:.36em;color:#d0d7bc;margin-top:12px}.entry-tagline{font:20px/1.5 Georgia,serif;color:#c8d4c7;margin:0 0 32px}.entry-copy h2{font-size:17px;font-weight:500;color:var(--text);margin:0 0 13px}
.entry-poster{display:block;max-width:100%;width:100%;height:auto;max-height:80svh;object-fit:contain;border:1px solid #8c805d66;border-radius:7px;box-shadow:0 22px 75px #0007,0 0 90px #a8954820}.input-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.input-profiles button{display:flex;flex-direction:column;gap:9px;min-height:165px;padding:19px 15px;text-align:left;color:#d2ddd1;background:linear-gradient(135deg,#24372f,#13231f);border:1px solid #486252;border-radius:7px;font-family:inherit;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}.input-profiles button:hover{background:#2d4438;transform:translateY(-2px)}.input-profiles button.selected{border-color:var(--gold);background:linear-gradient(135deg,#3b4431,#1e3027);box-shadow:inset 0 0 0 1px #e5bf7a33}.input-profiles strong{font:600 19px 'Manrope',sans-serif;color:#f0d494}.input-profiles span{font-size:12px;line-height:1.5}.input-profiles small{font-size:11px;line-height:1.75;color:#a6c2b2}
#entry-status{min-height:22px;font-size:12px;color:#a9bcb0;margin:16px 0 13px}.entry-primary{width:100%;min-height:48px}.entry-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.entry-modes button,.entry-settings button,.duel-header button,.settings-presets button{border:1px solid #415b49;color:#bdcec0;background:#1b2c2380;border-radius:5px;padding:11px 9px;font-family:inherit;font-size:12px;line-height:1.4;cursor:pointer;min-height:43px}.entry-modes button:disabled,.entry-primary:disabled{opacity:.4;cursor:default}.entry-settings{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.entry-settings button,.entry-settings a{font-size:11px;color:#a9beb0}.entry-settings a{margin-left:auto;text-decoration:none;padding:11px}.entry-screen button:focus-visible,.duel-shell button:focus-visible,.duel-shell select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.profile-setting{display:flex;align-items:center;gap:15px;margin-bottom:16px;color:#d5dfce}.profile-setting select,.duel-options select{background:#13261d;color:#dce7d4;border:1px solid #567459;border-radius:5px;padding:11px;font-family:inherit;font-size:14px;min-height:43px}.settings-presets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.settings-presets button{padding:9px 12px}.orientation-note{color:#b9caaa;font-size:12px;margin:9px 0}.guide-progress-note{font-size:12px!important}.guide-section[hidden]{display:none!important}
/* Keep the fighting lane large; expand the remembered systems when there is time. */
.rail-expand{font-family:inherit;font-size:11px;color:#d4cfac;border:1px solid #617052;background:#27392a;padding:6px 8px;border-radius:4px;cursor:pointer}.body-heading{flex-wrap:wrap;gap:7px}.game-layout.compact-rail{grid-template-columns:minmax(0,1fr) 104px;gap:15px}.compact-rail .run-rail{display:flex;flex-direction:column;gap:12px;padding:12px 9px}.compact-rail .body-heading{display:flex;flex-direction:column;gap:12px}.compact-rail .body-heading>.eyebrow,.compact-rail .body-card>div:last-child,.compact-rail .status-row:not(.memory-row),.compact-rail .health-track,.compact-rail .xp-track,.compact-rail .rail-section,.compact-rail .run-numbers>div:first-child{display:none!important}.compact-rail .body-card{display:flex;justify-content:center;margin:0}.compact-rail .sprite-portrait{width:60px;height:60px}.compact-rail .memory-row{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0}.compact-rail .memory-row>span{font-size:10px}.compact-rail .memory-row strong{font-size:13px}.compact-rail .run-numbers{display:block;margin:0;text-align:center}.compact-rail .run-numbers strong{font-size:17px}.compact-rail .run-numbers span{font-size:10px;line-height:1.5}.compact-rail .rail-expand{width:100%}.mini-map{grid-template-columns:repeat(6,minmax(57px,1fr));overflow-x:auto;padding:5px 1px;scrollbar-width:thin}.mini-map .map-room{font:500 9px 'DM Sans',sans-serif;min-height:33px}.mini-map .map-room>span{white-space:nowrap;overflow-wrap:normal}.map-room .clear-stamp{position:absolute;bottom:2px;right:4px;font-size:10px;line-height:1;color:#bddcaa}#mini-map-location{font-size:14px!important;font-weight:600;color:var(--gold)!important;line-height:1.5!important}.cooldown-control{--ready:1;position:relative;padding-left:29px!important}.cooldown-control:before{content:'';position:absolute;width:16px;height:16px;border-radius:50%;left:7px;top:50%;transform:translateY(-50%);background:conic-gradient(var(--gold) calc(var(--ready)*1turn),#3d5343 0);mask:radial-gradient(circle,transparent 52%,#000 57%)}.touch-actions #touch-dash,.touch-actions #touch-power{--ready:1;background:conic-gradient(#e5bf7a88 calc(var(--ready)*1turn),#1a2f2499 0);box-shadow:inset 0 0 0 5px #17251ecc}.joystick{transition:opacity .12s}.input-mobile .control-strip #dash-button{display:none}
/* Six familiar vessels in a separate side-view duel. */
.duel-shell{max-width:1320px;margin:auto;padding:20px 32px 12px}.duel-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.duel-header h1{font:500 28px 'Manrope',sans-serif;color:#f0d397;margin:7px 0 0}.duel-header>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.duel-header .eyebrow{font-size:10px;color:var(--cyan)}.duel-select>h2{font:500 22px Georgia,serif;color:#ccd8c7;margin:24px 0 18px}.duel-rosters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.duel-roster{padding:18px;border:1px solid #3e5647;border-radius:8px;background:#17271f80}.duel-roster h3{font-size:12px;letter-spacing:1px;margin:0 0 13px}.duel-vessels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.duel-vessel{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:126px;padding:10px 7px;color:#c7d7c7;background:#12231c;border:1px solid #3d5b43;border-radius:6px;cursor:pointer;font-family:inherit}.duel-vessel.selected{background:#304234;border-color:var(--gold)}.duel-roster:nth-child(2) .duel-vessel.selected{border-color:#c4a1fa;background:#303548}.duel-vessel .sprite-portrait{width:65px;height:65px}.duel-vessel strong{font-size:13px}.duel-vessel small{font-size:10px;color:#b2c3b4;line-height:1.4}.duel-roster>p{font-size:13px;line-height:1.6;color:#becfbb;margin:14px 0 0}.duel-roster>p.map-note{font-size:11px;color:#91ab98}.duel-options{display:grid;grid-template-columns:1fr 1fr 1fr 1.25fr;gap:12px;align-items:end;margin:21px 0 12px}.duel-options label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#a5bca9}.duel-options select{width:100%}.duel-options .primary-button{min-height:46px;margin:0}.duel-arena{position:relative;border:1px solid #536849;border-radius:7px;overflow:hidden;isolation:isolate;background:#0b1914;height:min(70svh,680px);min-height:250px}.duel-shell.selecting .duel-arena{height:135px;min-height:135px}.duel-arena canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.duel-instructions{font-size:12px;line-height:1.65;color:#c4d4c0;margin:13px 0 7px}.duel-note{font-size:11px;color:#8fa796;line-height:1.6;margin:0}.duel-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;background:#07161055;pointer-events:none}.duel-round-card{max-width:560px;text-align:center;pointer-events:auto;border:1px solid #6b795850;border-radius:8px;background:#0f231cdd;padding:24px;backdrop-filter:blur(8px)}.duel-round-card .eyebrow{color:var(--gold);font-size:10px}.duel-round-card h2{font:500 clamp(22px,3vw,34px)/1.25 Georgia,serif;color:#f2d79b;margin:14px 0}.duel-round-card p{font-size:13px;line-height:1.7;color:#bbcdbd}.duel-round-card button{border:1px solid #698164;background:#283e2b;color:#d7dfbf;min-height:42px;padding:10px 13px;border-radius:5px;font-family:inherit;font-size:13px;cursor:pointer}.duel-round-card .menu-actions{justify-content:center;flex-wrap:wrap}.duel-touch{position:absolute;inset:0;pointer-events:none;z-index:3}.duel-touch .joystick{left:18px;bottom:15px}.duel-touch-actions{position:absolute;right:15px;bottom:15px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:310px;pointer-events:auto}.duel-touch-actions button{width:53px;height:53px;border-radius:50%;border:1px solid #d3be7b;background:#243424cc;color:#ebd49a;font-family:inherit;font-size:10px;touch-action:none}.duel-touch-actions button:nth-last-child(-n+2){border-color:#aa96cc;background:#29293de0;color:#ded0f5}
@media(max-width:1050px){.entry-screen{padding:30px;grid-template-columns:1fr 260px;gap:28px}.input-profiles button{padding:15px 11px;min-height:175px}.entry-copy h1{font-size:70px}.entry-tagline{font-size:17px}.duel-shell{padding:18px 22px}.duel-rosters{gap:14px}.duel-roster{padding:14px}}
@media(max-width:850px){.entry-screen{grid-template-columns:1fr;min-height:100svh;max-width:720px;padding:32px 24px}.entry-poster{display:none}.entry-copy h1{font-size:76px}.input-profiles button{min-height:152px}.game-layout.compact-rail{grid-template-columns:minmax(0,1fr) 83px;gap:9px}.compact-rail .run-rail{padding:10px 6px;gap:10px}.compact-rail .body-card{grid-row:auto}.compact-rail .sprite-portrait{width:48px;height:48px}.compact-rail .canvas-frame{aspect-ratio:auto;height:calc(100svh - 215px);min-height:240px!important;max-height:none}.compact-rail .run-numbers{display:block}.duel-arena{height:calc(100svh - 200px);min-height:280px}.duel-header h1{font-size:22px}.duel-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.entry-screen{padding:27px 18px;align-items:start}.entry-copy h1{font-size:66px;margin-top:20px}.entry-tagline{font-size:16px;margin-bottom:25px}.input-profiles{gap:7px}.input-profiles button{padding:13px 8px;min-height:194px}.input-profiles strong{font-size:16px}.input-profiles small{font-size:10px}.input-profiles span{font-size:11px}.entry-modes{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-settings a{margin-left:0}.duel-shell{padding:16px 12px}.duel-rosters{grid-template-columns:1fr;gap:14px}.duel-vessel{min-height:118px}.duel-header{align-items:start}.duel-header>div:last-child{justify-content:flex-end;gap:5px}.duel-header button{min-height:35px;padding:7px;font-size:11px}.duel-header h1{font-size:20px}.duel-header .eyebrow{font-size:8px}.duel-round-card{padding:17px}.duel-round-card .menu-actions{gap:7px}.duel-touch-actions{max-width:178px}.duel-touch-actions button{width:49px;height:49px;font-size:9px}.duel-note{font-size:10px}.compact-rail .memory-row>span{font-size:9px}.compact-rail .run-numbers span{font-size:9px}}
@media(max-height:520px) and (orientation:landscape){.entry-screen{min-height:100svh;padding:22px 30px;grid-template-columns:1fr}.entry-poster{display:none}.entry-copy h1{font-size:48px;display:inline-block;margin:5px 0 15px}.entry-tagline{display:inline-block;margin:0 0 15px 25px;font-size:15px}.input-profiles button{min-height:113px}.entry-copy h2{font-size:14px}.entry-copy>.eyebrow{display:none}.entry-copy h1 small{font-size:10px;margin-top:5px}.duel-header{margin-bottom:9px}.duel-header h1{font-size:19px}.duel-arena{height:calc(100svh - 108px);min-height:215px}.duel-instructions{margin:7px 0;font-size:10px}.duel-note{display:none}.duel-round-card{padding:12px}.duel-round-card h2{margin:9px 0;font-size:22px}.duel-round-card p{margin:7px 0;font-size:12px}.duel-roster>p.map-note{font-size:10px}.duel-vessel .sprite-portrait{width:46px;height:46px}.duel-vessel{min-height:97px}.duel-touch .joystick{width:90px;height:90px}.duel-touch .joystick>span{left:24px;top:24px}.input-mobile .masthead,.input-mobile .descent-heading,.input-mobile .control-strip #control-hints,.input-mobile .online-strip,.input-mobile .world-message{display:none}.input-mobile .descent-heading{padding:6px}.input-mobile .game-layout.compact-rail .canvas-frame{height:calc(100svh - 45px);min-height:220px!important}.input-mobile .game-layout .canvas-frame{height:calc(100svh - 45px);min-height:220px!important;aspect-ratio:auto}.input-mobile .control-strip{padding:6px 0}.input-mobile .play-tools button{font-size:10px}.input-mobile .orientation-note{display:none}.input-mobile .run-rail{max-height:calc(100svh - 45px);overflow:auto}.input-mobile .play-tools{justify-content:flex-start}}
.duel-cycle{display:none;border:1px solid #567459;border-radius:5px;background:#20362a;color:#d6dfc9;padding:10px;font-family:inherit;font-size:12px;cursor:pointer;min-height:42px}.duel-shell.input-controller .duel-cycle{display:block}.duel-shell.input-controller .duel-options select{display:none}.duel-overlay.finishing{align-items:flex-end;background:transparent}.finishing .duel-round-card{padding:12px 18px;background:#0f231cbb}.finishing .duel-round-card h2{font-size:21px;margin:7px 0}.finishing .duel-round-card p{display:none}.finishing .duel-round-card .menu-actions{margin:8px 0 0}.finishing .duel-round-card>.eyebrow{display:none}
.duel-overlay.finishing{align-items:flex-start;padding-top:clamp(55px,12%,95px)}

/* The endless current and the twelve-rung duel ladder. */
.duel-options{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.duel-ladder{padding:24px;margin-top:24px;border:1px solid #bda16555;background:#0e211bc9;border-radius:12px}
.duel-ladder h3{font:26px Georgia;color:#e8ce96;margin:8px 0}.duel-ladder p{color:#b5cabc;line-height:1.6}
.ladder-rungs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:20px 0}
.ladder-rungs li{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #55766350;border-radius:7px;color:#93a998;min-width:0}.ladder-rungs li>span{font:22px Georgia;min-width:24px;color:#d4b980}.ladder-rungs b,.ladder-rungs small{display:block}.ladder-rungs small{font-size:11px;margin-top:5px}.ladder-rungs .current{border-color:#e2c17c;background:#d7b66b10;color:#ecd6a3}.ladder-rungs .conquered{border-color:#83b695;color:#aad4b2}.ladder-rungs .locked{opacity:.65}
.dungeon-route{list-style:none;padding:0;display:grid;gap:10px}.dungeon-route li,.next-floor{border:1px solid #7a9a7655;background:#10271e;border-radius:8px;padding:14px}.dungeon-route b,.dungeon-route span,.dungeon-route small{display:block;margin:4px 0}.dungeon-route small{color:#b6cbb8}.dungeon-condition{padding:8px;font-size:12px;color:#e8d09b}.next-floor p{margin:7px 0}.boss-reward{border:1px solid #e0bc7355;border-radius:10px;padding:15px;background:#e0bc7309;margin-bottom:16px}.boss-reward h2{margin:8px 0}#clock-state{font-size:9px;color:#e5c77d;display:block;letter-spacing:.05em}
@media(max-width:700px){.ladder-rungs{grid-template-columns:repeat(2,minmax(0,1fr))}.duel-ladder{padding:16px}.duel-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.ladder-rungs,.duel-options{grid-template-columns:1fr}}

.map-room>.map-key{position:absolute;top:2px;right:3px;display:flex;color:#dfc487}.map-key .small-icon{width:11px;height:11px;margin:0}.map-key.collected{color:#a6d7b5}.map-key.waiting{color:#ebc882}

/* Routes, curiosities, and guardian echoes use the existing teal-and-gold vocabulary. */
.relic-list{display:grid;gap:8px}.relic-chip{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:var(--gold,#dec38b);font-size:12px;padding:10px;border:1px solid #526650;border-radius:6px}.relic-chip small{display:block;width:100%;font-size:10px;line-height:1.5;color:#abb9a7}.map-relic{position:absolute;bottom:3px;right:3px;color:#9acdc9}.map-relic.collected{color:#e8cb81}.map-secret{position:absolute;bottom:3px;left:5px;color:#e8cb81;font:600 13px serif}.rematch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.rematch-grid button{display:grid;gap:8px;text-align:left;padding:15px}.rematch-grid span{font-size:11px;color:#aebda9}.map-note{line-height:1.5}@media(max-width:500px){.rematch-grid{grid-template-columns:1fr}}

.map-room.hinted{border-style:dashed;border-color:#acbd97;color:#cbd4b8;opacity:1}.map-room.hinted>span:first-of-type{font-style:italic}.map-secret.collected{color:#9cba97;opacity:.65}

.map-scroll>.map-key{position:static;display:flex;flex-wrap:wrap;gap:10px;max-width:100%;margin-top:12px}.map-dialog>.dialog-top{position:relative;z-index:1;gap:12px}.rematch-grid .guardian-portrait{grid-row:1/3;width:64px;height:64px;background:url(world-bosses-v6.webp) left top/300% 200% no-repeat}.rematch-grid .cantor-portrait{background-image:url(enemies-v4.webp);background-size:300% 100%;background-position:100% 0}.rematch-grid button{grid-template-columns:64px 1fr}.rematch-grid button>b,.rematch-grid button>span:last-child{grid-column:2}
/* v0.12: explicit fire modes, keepsakes and a deterministic seal-room. */
.entry-fire{margin:20px 0;padding:16px;border:1px solid #4a6053;border-radius:6px;background:#12241ec9;max-width:740px}.entry-fire label{display:flex;gap:16px;align-items:center;color:var(--gold);font-size:14px}.entry-fire select,.profile-setting select{color:var(--text);background:#12251e;padding:10px;border:1px solid #536e5a;border-radius:4px;font:inherit}.entry-fire p{margin:10px 0;font-size:13px;color:var(--muted)}.entry-fire .pact-toggle{font-size:13px;color:var(--text);line-height:1.6}.entry-fire small{display:block;margin-top:8px;font-size:11px;color:var(--dim)}.touch-fire{position:absolute;right:100px;bottom:110px;width:62px!important;height:62px!important;color:var(--cyan)!important;border-color:var(--cyan)!important;background:#173732cc!important}.vault-shell,.table-shell{max-width:1200px;padding:30px 30px 50px;margin:auto}.vault-intro{text-align:center;line-height:1.7;margin:25px auto;color:var(--muted);font-size:14px}.vault-intro strong{display:block;color:var(--gold);font:500 29px Manrope,sans-serif;margin:10px}.vault-ring{position:relative;min-height:680px;border:1px solid #435546;border-radius:10px;background:radial-gradient(ellipse at center,#9b762536 0,#1d312c 35%,#071612 78%)}.vault-ring:before{content:'';position:absolute;inset:60px 100px;border:2px solid #bc9b5160;border-radius:50%;box-shadow:0 0 50px #b28c3722,inset 0 0 40px #b28c3722}.vault-glyph{position:absolute;inset:40% 28%;text-align:center;color:#f2ca72;font-size:78px}.vault-glyph small{display:block;font:10px Manrope,sans-serif;letter-spacing:3px;margin-top:10px}.vault-alcove{position:absolute;left:var(--ax);top:var(--ay);transform:translate(-50%,-50%);width:190px;min-height:132px;padding:12px;background:#0e211fee;border:1px solid #786737;border-radius:40px 40px 7px 7px;display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center;box-shadow:0 12px 20px #0004}.vault-alcove strong{font-size:14px;color:var(--gold)}.vault-alcove>span:not(.alcove-seal){font-size:11px;color:#d9bf87}.vault-alcove small{font-size:10px;color:var(--muted);line-height:1.5}.vault-alcove:disabled{opacity:1;cursor:default}.vault-alcove.locked{border-color:#425646}.vault-alcove.locked strong{color:#9dac9d}.vault-alcove.owned{border-color:#8fbfa1;background:#1a382bee}.alcove-seal{font-size:27px;color:var(--gold)}.vault-alcove.owned .alcove-seal{color:#aed9b9}.vault-foot,#vault-message{text-align:center;line-height:1.8;margin:20px auto;color:var(--gold);font-size:14px}.binder-dialog{width:min(920px,calc(100% - 24px))}.binder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.spark-card{padding:20px 16px;border:1px solid #6e6745;border-radius:8px;background:linear-gradient(150deg,#29352a,#0e221e);display:flex;flex-direction:column;gap:12px;min-height:230px}.spark-card h3{font-size:19px;color:var(--gold)}.spark-card p{font-size:13px;line-height:1.7}.spark-card .card-rule{color:#cfe2d1}.spark-card.sealed{border-color:#385347;background:#10231c}.spark-card.sealed h3{color:#74998a}.spark-card button{margin-top:auto;font-size:12px}.profile-setting{margin:15px 0}.touch-fire[hidden]{display:none!important}
@media(max-width:850px){.vault-ring{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:24px;min-height:0}.vault-ring:before{display:none}.vault-glyph{position:static;grid-column:1/-1;font-size:48px;padding:10px}.vault-alcove{position:static;transform:none;width:100%;min-height:165px}.binder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.vault-shell,.table-shell{padding:20px 12px}.vault-ring{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;gap:10px}.vault-alcove{padding:12px 8px}.binder-grid{grid-template-columns:1fr}.touch-fire{right:95px;bottom:108px}}
.fighter-portrait{display:block;width:100px;height:100px;background:url(duel-fighters-v12.webp) var(--fighter-x) var(--fighter-y)/300% 300% no-repeat}.duel-vessel{min-height:175px}.duel-vessel .fighter-portrait{align-self:center}.duel-vessel small{line-height:1.5}.duel-vessel.sealed{background:repeating-linear-gradient(135deg,#11231f,#11231f 12px,#182a23 12px,#182a23 13px);opacity:1;border-color:#3d5647}.fighter-seal{display:grid;place-items:center;height:100px;font-size:58px;color:#746e4b}.duel-inspect{background:#11291e;color:#b6c9b9;border:1px solid #46624c;border-radius:4px;padding:10px;margin-top:12px;font-size:12px}.duel-frame-data{font-size:11px!important;line-height:1.8!important;color:#c7d0b9!important;border:1px solid #596140;padding:12px}.duel-frame-data[hidden]{display:none}.duel-touch-actions{flex-wrap:wrap;max-width:260px}.duel-roster>p{font-size:13px}
.duel-shell{background:radial-gradient(ellipse at 50% 12%,#193c3c55,transparent 65%)}.duel-arena{border-color:#5b807b;box-shadow:0 22px 65px #02090870,0 0 28px #6fd2c015}.duel-vessel{background:linear-gradient(155deg,#19322c,#0b191c);transition:border-color .15s,background .15s}.duel-vessel.selected{background:linear-gradient(155deg,#4a4430,#152928);box-shadow:inset 0 0 25px #e6c47514}.duel-roster:nth-child(2) .duel-vessel.selected{background:linear-gradient(155deg,#443955,#12212b)}.duel-roster{background:linear-gradient(145deg,#152b27e0,#0c1b20d0)}.duel-techniques{margin-top:16px;border-top:1px solid #3a5755;padding-top:12px}.duel-techniques summary{font-size:12px;color:#e7cb87;cursor:pointer;min-height:30px}.duel-move-books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;text-align:left}.duel-move-books>section:only-child{grid-column:1/-1}.duel-move-books h3{font-size:12px;letter-spacing:1px;color:#e3c688;margin:10px 0}.duel-technique{display:flex;flex-direction:column;gap:7px;border-bottom:1px solid #3b555b;padding:12px 0}.duel-technique strong{font:500 16px Georgia,serif;color:#f1dab1}.duel-technique kbd{font-family:inherit;font-size:11px;line-height:1.5;color:#91e1db}.duel-technique small{font-size:11px;line-height:1.6;color:#adbfbc}.duel-guide-tip{font-size:11px!important;line-height:1.7!important;color:#becac2!important;text-align:left}.duel-round-card:has(.duel-move-books){max-width:720px;background:#0a1a22ef}.duel-touch-actions{display:grid;grid-template-columns:repeat(4,53px);max-width:240px;gap:6px}.duel-touch-actions button:nth-child(-n+4){border-color:#86d9d4;background:#10272fea;color:#ccf8ee;font-size:13px;font-weight:700}.duel-touch-actions button:nth-child(n+5){font-size:9px}.duel-overlay{align-items:safe center}.duel-overlay .duel-round-card{max-height:100%;overflow:auto}
@media(max-width:560px){.duel-move-books{grid-template-columns:1fr;gap:8px}.duel-touch-actions{grid-template-columns:repeat(3,49px);max-width:165px;right:10px;bottom:10px}.duel-round-card:has(.duel-move-books){padding:18px}.duel-technique{padding:9px 0}.duel-touch .joystick{width:90px;height:90px;left:12px;bottom:14px}.duel-touch .joystick>span{left:24px;top:24px}}
@media(max-height:520px) and (orientation:landscape){.duel-touch-actions{grid-template-columns:repeat(4,45px);max-width:204px;gap:5px;bottom:8px}.duel-touch-actions button{width:45px;height:45px}.duel-move-books{grid-template-columns:repeat(2,minmax(0,1fr))}.duel-round-card:has(.duel-move-books){width:90%;max-width:760px}.duel-technique{padding:7px 0}.duel-technique strong{font-size:14px}}
/* Table: a single party scene, with three seats around a firelit surface. */
.table-scene{position:relative;min-height:330px;overflow:hidden;border:1px solid #4d5c3c;border-radius:10px;margin:24px 0;background:radial-gradient(ellipse at 50% 15%,#e8983933,transparent 60%),linear-gradient(#0b1b17,#1f2920);box-shadow:inset 0 -20px 70px #0006}.table-top{position:absolute;left:20%;right:20%;bottom:42px;height:115px;border-radius:50%;border:7px solid #7d6140;background:repeating-linear-gradient(8deg,#332d22,#332d22 12px,#473627 13px,#362e23 16px);box-shadow:0 25px 22px #0008,inset 0 0 40px #dda84722}.table-top>span{position:absolute;left:45%;top:10%;font-size:50px;color:#d2ab65;text-shadow:0 0 22px #f3bf6a}.table-fire{position:absolute;top:18px;left:calc(50% - 40px);width:80px;height:82px;filter:drop-shadow(0 0 27px #efad5766)}.table-fire i{position:absolute;bottom:0;left:22px;background:linear-gradient(#ffee9b,#dc8f32);width:40px;height:68px;border-radius:80% 10% 50% 50%;transform:rotate(-25deg);animation:table-flame 2.1s ease-in-out infinite}.table-fire i:nth-child(2){width:28px;height:80px;left:37px;background:linear-gradient(#fffbc2,#f3bd55);transform:rotate(18deg);animation-delay:.6s}.table-fire i:nth-child(3){width:18px;height:38px;left:25px;background:#fff4bb;transform:rotate(15deg);animation-delay:1.1s}@keyframes table-flame{50%{height:53px;opacity:.75}}.table-seat{position:absolute;display:flex;flex-direction:column;align-items:center;gap:7px;z-index:1;color:#d0c49f;font-size:12px}.table-seat .fighter-portrait{width:140px;height:140px;filter:drop-shadow(0 0 12px #d7a25544)}.player-seat{left:calc(50% - 70px);top:72px}.seat-0{left:8%;top:122px}.seat-1{right:8%;top:122px}.empty-seat{display:grid;place-items:center;font-size:64px;width:140px;height:140px;color:#71867a}.table-guest{position:absolute;left:20px;top:14px;max-width:210px;color:var(--cyan);font-size:12px;padding:10px;background:#0e201bcc;border:1px solid #4e685a;border-radius:4px}.table-guest span{margin-right:6px}.table-guest p{font-size:11px;line-height:1.5;margin-top:7px;color:#a2b8a8}.table-card{max-width:900px;margin:auto;border:1px solid #4b634d;border-radius:9px;padding:26px 32px;background:linear-gradient(140deg,#203329,#11221e);display:flex;flex-direction:column;gap:16px}.table-card h2{color:#e5c48a;font-size:28px;font-weight:500;line-height:1.3}.table-card p{font-size:14px;line-height:1.8;color:#aebdad}.table-status{display:flex;justify-content:space-between;gap:12px;align-items:center}.table-status [data-table-clock]{color:var(--gold);font-size:14px;font-variant-numeric:tabular-nums}.table-stats{display:flex;gap:24px;color:#b9cbb9;font-size:12px}.table-stats b{color:#ecd39a;margin-left:5px;font-size:18px}.table-responses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.table-responses button{display:flex;flex-direction:column;gap:10px;text-align:left;background:#11221ed9;border:1px solid #4d694d;border-radius:6px;padding:18px}.table-responses button.selected,.table-responses button:hover{border-color:#d8bf78;background:#203e2c}.table-responses button>span{font-size:11px;color:var(--cyan)}.table-responses button>strong{font-size:16px;font-weight:500;color:#ded4b3}.table-responses button>small{font-size:12px;line-height:1.65;color:#9fb5a3}.table-cards,.table-invites{display:flex;flex-wrap:wrap;gap:9px;border-top:1px solid #3c5945;padding-top:18px}.table-cards>.eyebrow,.table-invites>.eyebrow{width:100%}.table-cards button,.table-invites button{padding:10px 14px;border:1px solid #6d673f;border-radius:4px;background:#283729;color:#ddc692;font-size:12px}.table-cards button>b{display:block;font-weight:500}.table-cards button>span{display:block;margin-top:6px;color:#aebdab;font-size:11px}.spark-dice{display:flex;justify-content:center;gap:22px;padding:15px}.spark-die{width:120px;min-height:132px;padding:16px;background:#122a23;border:1px solid #a88e53;box-shadow:0 0 26px #cfb26517;border-radius:16px;text-align:center;color:#e6bf70}.spark-die>span{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;min-height:80px;align-content:center}.spark-die i{font-size:22px;font-style:normal}.spark-die b{font-size:11px;color:#b9cab4}.spark-die.memory{border-color:#efc66a;box-shadow:0 0 22px #e7bc5944}.table-foot{font-size:12px;color:#a6b8a4;text-align:center;margin:25px 0}.table-outcome{color:var(--gold)!important}
@media(prefers-reduced-motion:reduce){.table-fire i{animation:none}}
@media(max-width:600px){.table-scene{min-height:295px}.table-seat .fighter-portrait{width:100px;height:100px}.player-seat{left:calc(50% - 50px);top:88px}.seat-0{left:0;top:135px}.seat-1{right:0;top:135px}.table-guest{max-width:130px;padding:6px;font-size:10px}.table-guest p{display:none}.table-card{padding:20px 15px}.table-card h2{font-size:24px}.table-responses{grid-template-columns:1fr}.table-responses button{padding:15px}.table-card .story-controls{font-size:12px}.table-status .eyebrow{font-size:9px}.table-stats{gap:18px}}

.room-identity{display:grid;grid-template-columns:1fr auto;gap:8px;margin:18px 0}.room-identity label{grid-column:1/-1}.room-identity input{min-width:0;padding:11px 12px;background:#10251c;color:#e6e7cf;border:1px solid #526e5b;border-radius:5px}.room-identity button{padding:10px 14px}.online-strip #online-status{min-width:0;flex:1;line-height:1.6;overflow-wrap:break-word}.online-strip button,.online-strip strong{flex-shrink:0}.gift-choice.guest-vote{box-shadow:inset 0 0 0 2px #8dcfc8}.gift-choice.guest-vote .gift-effects{color:#ade0da}
@media(max-width:600px){.online-strip{flex-wrap:wrap}.online-strip #online-status{flex-basis:100%}}

#online-dialog #online-name{text-transform:none;letter-spacing:normal}

.play-feedback{position:absolute;z-index:25;top:12px;left:50%;transform:translateX(-50%);max-width:90%;padding:10px 16px;background:#10252ff2;color:#f4d397;border:1px solid #c7a45a;border-radius:8px;text-align:center;pointer-events:none}.play-feedback[hidden]{display:none}

[hidden]{display:none!important}.vault-alcove.unaffordable{opacity:.45;border-color:#475449;filter:saturate(.25);box-shadow:none}.vault-alcove.unaffordable .alcove-seal{color:#78867a}.coop-revive-status{position:absolute;z-index:4;left:50%;bottom:14px;transform:translateX(-50%);max-width:90%;background:#16221ff2;border:1px solid #e5bf7a;border-radius:8px;padding:10px 16px;text-align:center;font-size:13px;color:#f1d399;pointer-events:none}.save-profile{display:flex;gap:12px;align-items:center;margin:12px 0;color:#adbbb0;font-size:12px}.save-profile select{background:#15271f;color:#e4d9b6;border:1px solid #415e4e;padding:8px;border-radius:4px;font:inherit}
/* Sideways keeps its canvas, controls, overlays, and journey separate. */
.side-entry{border-color:#ba9b65!important;background:linear-gradient(115deg,#293d33,#152b2d)!important;color:#f2d89e!important}
.side-economy{color:#edcf8e;font-size:12px;margin:10px 0 0;letter-spacing:.02em}.side-shop-balance{display:flex;flex-wrap:wrap;gap:8px 20px;padding:14px 0;border-top:1px solid #b9c29633;border-bottom:1px solid #b9c29633;margin:12px 0 16px;color:#dec78b;font-size:13px}.side-shop-balance span{color:#a9bda7}.side-shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:16px 0}.side-shop-grid button{display:flex;flex-direction:column;text-align:left;gap:7px}.side-shop-grid button strong{font:18px Georgia,serif;color:#ead5a0}.side-shop-grid button span{font-size:11px;color:#b6c7a5}.side-shop-grid button small{font-size:11px;line-height:1.55;color:#a6c0ae}.side-shop-grid button:disabled{opacity:.48;background:#10231e;border-color:#445b49}.side-current-build{font-size:12px;border-left:2px solid #d2bc7b;padding:11px;color:#c1d1b7;margin-bottom:13px}.side-technique{border:1px solid #839c685c;padding:18px;background:#36523a20;border-radius:6px}.side-technique h3{font:25px Georgia,serif;color:#e8d4a2;margin:10px 0}.side-technique button{margin-top:8px}@media(max-width:480px){.side-shop-grid{grid-template-columns:1fr}.side-economy{font-size:10px}.side-touch-actions{grid-template-columns:repeat(3,48px)}.side-shop-grid button strong{font-size:16px}}
.side-shell{max-width:1340px;margin:auto;padding:20px 30px 10px;color:#e5dec8}
.side-header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.side-header h1{font:32px Georgia,serif;letter-spacing:-.8px;margin:5px 0}.side-header nav{display:flex;gap:6px;flex-wrap:wrap}.side-header button{padding:8px 12px;font-size:12px;background:#142c2b;border:1px solid #789b7950;color:#d9dcc4;border-radius:6px}
.side-hud{display:flex;gap:22px;align-items:center;margin-bottom:12px;font-size:12px}.side-hud>div:first-child{flex:1}.side-hud strong{display:block;font:22px Georgia,serif;color:#ecd8ae;margin-bottom:4px}.side-hud span{color:#a5beb0}.side-health{width:175px;flex-shrink:0}.side-health>span{display:block;text-align:right;margin-bottom:6px;font-variant-numeric:tabular-nums}.side-health>div{height:7px;background:#28433d;border-radius:9px;overflow:hidden}.side-health i{display:block;height:100%;background:linear-gradient(90deg,#6bb5a0,#d9cc89);border-radius:9px;transition:width .15s}
.side-arena{position:relative;isolation:isolate;border:1px solid #69866e85;border-radius:9px;overflow:hidden;box-shadow:0 12px 65px #0008;background:#061817}
#side-canvas{display:block;width:100%;height:clamp(280px,calc(100svh - 240px),660px);outline:none;touch-action:none}
.side-overlay{position:absolute;inset:0;z-index:4;background:#05120fd9;display:flex;justify-content:center;align-items:center;padding:20px;overflow:hidden;backdrop-filter:blur(5px)}
.side-menu{max-width:700px;width:100%;max-height:100%;overflow:auto;overscroll-behavior:contain;padding:26px 32px;border:1px solid #af996351;border-radius:10px;background:linear-gradient(145deg,#152c25f5,#0b2126f5);box-shadow:0 12px 90px #0008;scrollbar-color:#6f8c76 #142921}
.side-menu h2{font:31px Georgia,serif;color:#ecd8aa;letter-spacing:-.4px;margin:10px 0 14px}.side-menu p{line-height:1.6;font-size:14px;color:#b9ccbb}.side-menu button{padding:11px 16px;border-radius:5px;color:#e1dbc5;background:#18352e;border:1px solid #7a917b65;font-size:13px;cursor:pointer}.side-menu button:hover,.side-header button:hover{background:#294437;border-color:#d8be79}.side-menu button:focus-visible,.side-header button:focus-visible{outline:2px solid #eed08a;outline-offset:2px}.side-menu button:disabled{opacity:.4;cursor:default}.side-menu .primary-button{background:#d4bf83;color:#12251e;border-color:#d4bf83}.side-menu>.primary-button,.side-menu>.secondary-button{margin-right:8px;margin-top:8px}.side-menu .side-separate{font-size:12px;border-left:2px solid #9baa77;padding-left:13px}.side-menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.side-menu-actions .primary-button{grid-column:1/-1}.side-subtle{opacity:.7}.side-menu.wide{max-width:1030px}.side-notice{position:absolute;z-index:3;top:12px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);padding:10px 17px;margin:0;border:1px solid #cfb57965;border-radius:5px;background:#12251eee;color:#eadaae;font-size:12px;line-height:1.5;text-align:center;pointer-events:none}
.side-keyring{margin:12px 0 4px;color:#d9c59d;font-size:12px}.side-instructions{font-size:11px;line-height:1.6;color:#93b1a3;margin:0}.side-shell footer{font-size:11px;padding:10px 0;border:0;display:flex;justify-content:space-between;gap:10px;color:#708e7f}.side-vessel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.side-vessel{display:flex;align-items:center;flex-direction:column;text-align:center!important;padding:8px!important}.side-vessel .fighter-portrait{width:105px;height:112px}.side-vessel strong{font:19px Georgia,serif;color:#e7d4a7}.side-vessel small{line-height:1.5;color:#a8c0ac;font-size:11px;margin:8px 0}.side-vessel em{font-size:10px;color:#dacda7;font-style:normal}.side-vessel.selected{border-color:#e6c883!important;box-shadow:inset 0 0 20px #d1b06d10}.side-map-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 24px}.side-map-grid section{border-top:1px solid #809d7455;padding-top:6px}.side-map-grid h3{font:17px Georgia,serif;margin:7px 0}.side-map-room{display:flex;gap:9px;text-align:left;width:100%;border:0!important;background:transparent!important;margin:3px 0;padding:7px 4px!important;font-size:12px!important}.side-map-room.unseen{color:#7e9f90}.side-map-room.current{color:#f0d49c;border-left:2px solid #d5c188!important;background:#a9b46b11!important}.side-map-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:11px!important}.side-map-detail{margin-top:15px;padding:14px;background:#061b1770;border-left:2px solid #aeac77}.side-map-detail p{font-size:12px;margin:6px 0}.side-help-forms{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.side-result{display:flex;flex-direction:column;gap:9px;margin:22px 0;color:#d8c49e}.side-result strong{font:27px Georgia,serif}.side-result span{font-size:12px}
.side-path-journal{margin-top:20px;padding:14px 0;border-top:1px solid #aec48e44}.side-path-journal h3{font:19px Georgia,serif;color:#dcca97;margin:16px 0 9px}.side-path-journal p{padding-left:12px;border-left:2px solid #7d9f765c;font-size:12px}.side-set-active{padding:10px 12px;background:#719c6b16;border-left:2px solid #b5cf9a;color:#c7d6ad!important;font-size:12px!important}
.side-touch{position:absolute;inset:0;z-index:2;pointer-events:none}.side-touch .joystick{pointer-events:auto;position:absolute;left:20px;bottom:35px;touch-action:none}.side-touch-actions{position:absolute;right:16px;bottom:22px;display:grid;grid-template-columns:repeat(4,58px);gap:7px;pointer-events:auto}.side-touch-actions button{min-height:45px;touch-action:none;border-radius:8px;background:#143b35bc;border:1px solid #aec59277;color:#e9ddb5;font-size:9px;font-weight:700;padding:4px}.side-touch-actions button:active{background:#627d40b8}.side-touch-actions #side-touch-jump{grid-row:span 2;background:#385d42c9}.side-touch-actions #side-touch-attack{background:#705f32bb}
@media(max-width:800px){.side-shell{padding:12px 12px 0}.side-header{margin-bottom:8px;gap:8px}.side-header h1{font-size:24px}.side-header .eyebrow{font-size:8px}.side-header nav{gap:4px}.side-header button{font-size:10px;padding:7px 8px}.side-hud{gap:10px;margin-bottom:7px}.side-hud strong{font-size:17px}.side-health{width:115px}.side-hud>span{font-size:10px;max-width:110px}.side-menu{padding:18px}.side-menu h2{font-size:25px}.side-menu p{font-size:12px}.side-menu-actions{gap:7px}.side-vessel .fighter-portrait{width:80px;height:90px}.side-vessel strong{font-size:16px}.side-map-grid{gap:8px}.side-map-grid h3{font-size:15px}.side-map-room{font-size:10px!important}.side-notice{font-size:10px;padding:7px 10px}.side-shell footer{font-size:9px}.side-instructions{font-size:10px}#side-canvas{height:clamp(300px,calc(100svh - 225px),540px)}}
@media(max-height:540px){.side-shell{padding:7px 10px 0}.side-header{margin-bottom:5px}.side-header h1{font-size:20px;margin:2px 0}.side-header .eyebrow{font-size:8px}.side-header button{padding:5px 8px;font-size:10px}.side-hud{margin-bottom:5px}.side-hud strong{font-size:14px}.side-health{width:120px}.side-keyring{margin:6px 0 3px;font-size:10px}.side-shell footer{display:none}.side-instructions{font-size:9px}.side-menu{padding:16px 20px}.side-menu h2{font-size:23px}.side-menu p{font-size:12px}.side-touch .joystick{left:12px;bottom:22px}.side-touch-actions{bottom:16px;right:10px;grid-template-columns:repeat(4,52px);gap:5px}.side-touch-actions button{min-height:36px}#side-canvas{height:calc(100svh - 145px);min-height:180px}.side-overlay{padding:10px}.side-vessel .fighter-portrait{width:65px;height:72px}.side-vessel small{font-size:10px}.side-vessel-grid{gap:6px}}
.side-guardian-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.side-guardian-grid button{display:grid;grid-template-columns:70px minmax(0,1fr);gap:5px 12px;align-content:center;min-height:100px;text-align:left;background:#112624;border:1px solid #79948166}.side-guardian-grid button strong,.side-guardian-grid button>span:not(.side-guardian-art),.side-guardian-grid button small{grid-column:2;line-height:1.35}.side-guardian-grid button small{color:#e3c491}.side-guardian-art{grid-row:1/4;display:block;width:70px;height:82px;background:url(world-bosses-v6.webp) left top/300% 200% no-repeat;border-radius:5px}.side-guardian-grid button:disabled{opacity:.4;filter:saturate(.25)}@media(max-width:620px){.side-guardian-grid{grid-template-columns:minmax(0,1fr)}}
