body.tower-mode{background:#102a44}.tower-mode .island-background{background-image:linear-gradient(#081b354d,#0b1c36b3),url('assets/tower-ascent-cg.png')}
.tower-mode .table-rail,.tower-mode .felt{padding:0;background:none;border:0;box-shadow:none}.tower-mode .game-layout{grid-template-columns:minmax(0,1fr);max-width:1420px;margin:auto}.tower-mode .story-column,.tower-mode .bet-panel,.tower-mode .table-top,.tower-mode .score-strip,.tower-mode .grid-wrap,.tower-mode .board-bottom,.tower-mode .felt-logo,.tower-mode .table-front,.tower-mode .item-pouch,.tower-mode #active-effects,.tower-mode .mobile-dock,.tower-mode #show-items,.tower-mode .board-message{display:none!important}.tower-mode .table-area{min-width:0}.tower-mode .topbar{background:#f5f5e8ed}.tower-mode .chapter-hud{max-width:1420px;margin:0 auto 15px;color:#f7ebcf}.tower-mode .chapter-name h1,.tower-mode .chapter-name .eyebrow{color:#f1dfb6}.tower-mode .history-panel{background:#f6f3e8e8;max-width:1420px;margin:20px auto}.tower-mode footer{color:#d5d3c0}
#tower-game[hidden],#tower-game [hidden]{display:none!important}
.tower-ascent{position:relative;isolation:isolate;background:#091e39;border:1px solid #beaa7866;border-radius:28px;overflow:hidden;box-shadow:0 24px 70px #04102366;color:#f7eccf;min-width:0}
.tower-cg-stage{position:relative;aspect-ratio:3/2;min-height:620px;overflow:hidden}
.tower-cg-plane{position:absolute;top:0;left:50%;height:100%;aspect-ratio:3/2;min-width:100%;transform:translateX(-50%);transition:transform 3s ease;transform-origin:66% 25%}
.tower-cg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;max-width:none}.tower-cg-shade{position:absolute;inset:0;background:linear-gradient(90deg,#061a3259,transparent 45%),linear-gradient(0deg,#071a348c,transparent 24%);pointer-events:none}
.tower-chapter-heading{position:absolute;left:6%;top:6.5%;text-shadow:0 2px 16px #091e39}.tower-chapter-heading>small{font:12px Georgia,serif;letter-spacing:4px;color:#d7c393}.tower-chapter-heading h2{font-weight:400;font-size:38px;letter-spacing:8px;margin:14px 0 10px}.tower-chapter-heading p{font-size:14px;letter-spacing:4px;color:#e2ddcb;margin:0}.tower-guide{position:absolute;right:4%;top:5%;border:1px solid #d7c68d66;border-radius:20px;padding:10px 20px;background:#102b4477;color:#f1e3ba;font-size:14px;backdrop-filter:blur(10px);z-index:3}
.tower-flight-console{position:absolute;left:6%;top:27%;width:31%;max-width:380px;border:1px solid #dbbf7e55;border-radius:23px;padding:25px;background:linear-gradient(145deg,#0a213be8,#102b47c9);box-shadow:0 18px 55px #04182b45,inset 0 0 0 4px #d6bf8005;backdrop-filter:blur(16px);z-index:4;box-sizing:border-box}
.tower-flight-eyebrow{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#d7c08d;font-size:13px;letter-spacing:2px}.tower-flight-eyebrow small{font:11px Georgia,serif;letter-spacing:1px;color:#a6b8c5}.tower-flight-multiplier{display:flex;align-items:baseline;justify-content:center;gap:9px;margin:25px 0 5px;color:#ffebb0;text-shadow:0 0 30px #f2d49833}.tower-flight-multiplier strong{font:clamp(46px,5.2vw,78px)/1 Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:-2px}.tower-flight-multiplier>span{font:28px Georgia,serif;color:#cfbb89}.tower-flight-return{display:flex;align-items:baseline;justify-content:space-between;margin:17px 0 0;gap:10px;font-size:13px;color:#b4c0c8}.tower-flight-return strong{font:23px Georgia,serif;color:#f6e3b6;font-variant-numeric:tabular-nums}.tower-flight-return strong small{font-size:12px;color:#bdc4c4}.tower-flight-graph{width:100%;height:62px;color:#d9c68c;margin:10px 0;opacity:.75}.tower-flight-graph #tower-flight-curve{stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 3px #e4c886)}
.tower-offering{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:7px 0 20px;padding-top:13px;border-top:1px solid #c2b98729}.tower-offering label{display:flex;align-items:baseline;gap:9px;font-size:13px;color:#d1c6a7;width:100%}.tower-offering label>span{margin-left:auto;color:#d6bd81;font:15px Georgia,serif}.tower-offering input{background:none;border:0;border-bottom:1px solid #c3ac7266;width:105px;color:#fff1c7;font:27px Georgia,serif;text-align:right;min-width:0;outline-offset:4px}.tower-quick{display:flex;gap:7px}.tower-quick button{background:#e8d69b0c;border:1px solid #b9af8144;color:#d9cfb2;border-radius:7px;min-width:38px;padding:6px 9px;font-size:12px}.tower-offering>small{display:block;width:100%;font-size:12px;color:#a7b7c2;line-height:1.7}
.tower-flight-main{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid #dfc385;border-radius:12px;padding:16px 19px;background:linear-gradient(110deg,#d8be82,#f0dda8);color:#344d58;box-shadow:0 4px 0 #7a6641;font-size:17px;letter-spacing:3px;font-weight:600;min-height:56px}.tower-flight-main>span{font-size:14px;letter-spacing:0}.is-flying .tower-flight-main{background:linear-gradient(110deg,#c7e5ce,#efe3ac);box-shadow:0 4px 0 #5c8176,0 0 23px #c6e6c926}.tower-flight-main:hover:not(:disabled){filter:brightness(1.08)}.tower-flight-main:disabled{opacity:.55;cursor:default}.tower-flight-prompt{font-size:12px;line-height:1.9;color:#b9c6ce;text-align:center;min-height:38px;margin:16px 0 5px;letter-spacing:1px}.tower-error{font-size:13px;line-height:1.8;color:#f4bca7}.tower-flight-foot{display:flex;justify-content:space-between;gap:6px;font-size:10px;letter-spacing:1px;color:#9dadb4;margin-top:18px;padding-top:14px;border-top:1px solid #b6bda01f}
#tower-game.is-flying #tower-offering{display:flex!important;visibility:hidden;position:relative;pointer-events:none}#tower-game.is-flying #tower-offering:after{content:'风在塔间穿行，星灯仍在飞升。';visibility:visible;position:absolute;inset:0;display:grid;place-items:center;font-size:13px;letter-spacing:2px;line-height:2;color:#bdcdd1;text-align:center;background:radial-gradient(ellipse,#d0e1b509,transparent 70%)}
.tower-floor-light{position:absolute;top:var(--floor-y);left:66%;width:4.4%;height:7.3%;border-radius:52% 52% 8% 8%;background:linear-gradient(#fff2bc,#f6cf75c9);opacity:0;transform:translate(-50%,-50%);mix-blend-mode:screen;box-shadow:0 0 21px 8px #ffe2a033,0 0 50px 18px #f3cb8a22;transition:opacity 1s ease;filter:blur(1px)}.tower-floor-light.is-lit{opacity:.88}.tower-floor-light>i{position:absolute;inset:17% 25%;background:radial-gradient(ellipse,#fffde5,#fbd98b44 48%,transparent 74%);filter:blur(2px)}
.tower-flight-caption{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);text-align:center;background:#102a4666;border:1px solid #d0ba7a33;border-radius:30px;padding:12px 25px;backdrop-filter:blur(10px);white-space:nowrap}.tower-flight-caption>span{font-size:12px;letter-spacing:3px;color:#ded3b2}.tower-six-lights{display:flex;justify-content:center;gap:17px;margin-top:8px}.tower-six-lights>span{font-size:17px;color:#90a6b55e;transition:color .8s,text-shadow .8s}.tower-six-lights>span.is-lit{color:#ffe5a2;text-shadow:0 0 12px #ffe2a7}.tower-six-lights>span.is-current{color:#d6e9ef;animation:ascent-breathe 1.8s infinite}
.tower-flying-lantern{position:absolute;top:82%;left:58%;height:9%;aspect-ratio:2/3;transform:translate(-50%,-50%);z-index:3;filter:drop-shadow(0 0 13px #ffe4a5)}.tower-flying-lantern>svg{height:100%;width:100%}.tower-flying-lantern>i{position:absolute;top:65%;left:50%;height:90px;width:2px;transform:translateX(-50%);background:linear-gradient(#ffe9a4aa,transparent);filter:blur(1px)}
.tower-sky-dust{position:absolute;inset:0;pointer-events:none}.tower-sky-dust>i{position:absolute;left:var(--x);top:var(--y);font-size:12px;color:#e7dbb4;opacity:.35;animation:ascent-breathe 5s var(--delay) infinite}.tower-round-effect{position:absolute;bottom:18%;left:50%;transform:translateX(-50%);font-size:14px;letter-spacing:3px;white-space:nowrap;text-shadow:0 1px 12px #06162c;color:#fff0bd;z-index:4}.tower-ascent[data-round-effect=bust] .tower-cg-shade{background:linear-gradient(#102e5a55,#0b203c77)}
.tower-top-beam{position:absolute;left:66%;top:0;height:31%;width:23%;transform:translateX(-50%);background:linear-gradient(0deg,#ffe4a5d9,transparent);clip-path:polygon(44% 100%,0 0,100% 0,56% 100%);filter:blur(9px);opacity:0;mix-blend-mode:screen}.tower-top-crown{position:absolute;left:66%;top:14%;transform:translate(-50%,-50%) scale(.25);opacity:0;width:9%;aspect-ratio:1;display:grid;place-items:center;border:1px solid #fce6ac;border-radius:50%;color:#fff0be;background:#102f4eaa;box-shadow:0 0 0 6px #ffebb91a,0 0 0 7px #efdb9d66,0 0 55px 22px #ffe6a377;transition:opacity 1.6s,transform 2.5s}.tower-top-crown span{font-size:clamp(20px,4vw,65px);text-shadow:0 0 20px #ffe4a0}.tower-top-crown i{position:absolute;inset:-20%;border:1px dashed #f8d89188;border-radius:50%;animation:ascent-orbit 20s linear infinite}.tower-top-wind{position:absolute;left:66%;top:20%;width:25%;height:9%;border-top:2px solid #b2d8edaa;border-radius:50%;opacity:0;transform:translateX(-50%) rotate(-20deg);filter:blur(1px)}
.tower-flight-finale{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 20px 8%;background:linear-gradient(0deg,#081c39ed,transparent 50%);text-align:center;box-sizing:border-box;animation:ascent-finale-in 1s both}.tower-flight-finale small{font:12px Georgia,serif;letter-spacing:4px;color:#d4c396}.tower-flight-finale h3{font-size:29px;font-weight:400;letter-spacing:6px;margin:20px 0;color:#fff0bc;text-shadow:0 0 24px #ffe8b755}.tower-flight-finale p{font-size:14px;color:#c4d1d6;letter-spacing:2px;line-height:2;max-width:440px;margin:0}.tower-ascent[data-finale] .tower-flight-console{opacity:0;pointer-events:none}.tower-ascent[data-finale] .tower-cg-plane{transform:translateX(-50%) scale(1.1)}.tower-ascent[data-finale] .tower-flight-caption,.tower-ascent[data-finale] .tower-chapter-heading,.tower-ascent[data-finale] .tower-guide{opacity:0}.tower-ascent[data-finale=won] .tower-top-beam{animation:ascent-beam 5.6s both}.tower-ascent[data-finale=won] .tower-top-crown{opacity:1;transform:translate(-50%,-50%) scale(1)}.tower-ascent[data-finale=won] .tower-floor-light{filter:blur(1px) brightness(1.4)}.tower-ascent[data-finale=over] .tower-top-wind{animation:ascent-wind 4s both}.tower-ascent[data-finale=over] .tower-cg-shade{background:linear-gradient(#091a3a77,transparent 70%)}.tower-ascent[data-finale=over] .tower-top-crown{opacity:.35;transform:translate(-50%,-25%) scale(.6);box-shadow:0 0 30px #b3d8f022;color:#adc8da;border-color:#a7c9dc;animation:ascent-star-out 4s both}
.tower-flight-rules{position:fixed;max-width:540px;width:calc(100% - 36px);padding:36px;border:1px solid #b5a16e;border-radius:23px;background:#102a43;color:#d4dfdf;box-sizing:border-box}.tower-flight-rules::backdrop{background:#07162abb;backdrop-filter:blur(7px)}.tower-flight-rules>button{position:absolute;right:15px;top:12px;background:none;border:0;color:#decfa9;font-size:24px}.tower-flight-rules>small{font:12px Georgia,serif;letter-spacing:3px;color:#baa77b}.tower-flight-rules h2{color:#f4dfaa;font-weight:400;letter-spacing:5px}.tower-flight-rules p{font-size:14px;line-height:2;color:#c1d0d7}
@keyframes ascent-breathe{50%{opacity:.9;filter:drop-shadow(0 0 5px #ffe4a0)}}@keyframes ascent-orbit{to{transform:rotate(360deg)}}@keyframes ascent-finale-in{from{opacity:0}to{opacity:1}}@keyframes ascent-beam{0%{opacity:0;transform:translateX(-50%) scaleX(.2)}40%,90%{opacity:1;transform:translateX(-50%) scaleX(1)}100%{opacity:.7}}@keyframes ascent-wind{0%{opacity:0;transform:translateX(-60%) rotate(-20deg)}30%,65%{opacity:.9}100%{opacity:0;transform:translateX(10%) rotate(10deg)}}@keyframes ascent-star-out{0%,20%{opacity:.6}75%,100%{opacity:0;transform:translate(-50%,15%) scale(.2)}}
@media(min-width:1600px){.tower-cg-stage{min-height:800px}.tower-flight-console{top:26%}}
@media(max-width:1050px){.tower-flight-console{width:35%;left:4%;padding:20px;top:28%}.tower-chapter-heading{left:4%}.tower-flight-multiplier strong{font-size:60px}.tower-flight-multiplier{margin-top:21px}.tower-flight-console .tower-flight-graph{height:42px}.tower-flight-eyebrow{font-size:12px;letter-spacing:1px}.tower-flight-eyebrow small{font-size:10px}.tower-flight-console .tower-flight-foot{font-size:10px;letter-spacing:0}}
@media(max-width:700px){.tower-mode main{padding:12px 8px 0}.tower-mode .chapter-hud{padding:0 4px;margin-bottom:12px}.tower-mode .chapter-name{display:none}.tower-mode .hud-stats{width:100%;justify-content:space-between;gap:4px}.tower-mode .topbar{padding-inline:10px}.tower-mode .top-location{display:none}.tower-mode .expedition-orbit{display:none}.tower-ascent{border-radius:22px;overflow:hidden}.tower-cg-stage{aspect-ratio:auto;height:510px;min-height:0}.tower-cg-plane{left:20%}.tower-chapter-heading{top:6%;left:6%}.tower-chapter-heading>small{font-size:10px;letter-spacing:2px}.tower-chapter-heading h2{font-size:26px;letter-spacing:5px;margin-top:12px}.tower-chapter-heading p{font-size:12px;letter-spacing:2px}.tower-guide{right:5%;top:5%;padding:7px 12px;font-size:12px}.tower-flight-caption{bottom:3%;padding:10px 17px}.tower-flight-caption>span{font-size:12px;letter-spacing:1.5px}.tower-six-lights{gap:13px;margin-top:6px}.tower-six-lights>span{font-size:14px}.tower-flight-console{position:relative;left:auto;top:auto;width:auto;max-width:none;margin:-12px 12px 15px;padding:19px 22px;background:linear-gradient(135deg,#102c46,#142b42);border-radius:20px}.tower-flight-multiplier{margin:17px 0 0}.tower-flight-multiplier strong{font-size:67px}.tower-flight-multiplier>span{font-size:25px}.tower-flight-graph{position:absolute;right:22px;top:65px;width:60px!important;opacity:.28;height:45px!important}.tower-flight-return{margin-top:13px}.tower-flight-return strong{font-size:22px}.tower-offering{margin-bottom:15px;gap:9px}.tower-offering label{font-size:13px}.tower-offering input{font-size:25px}.tower-offering>small{font-size:12px}.tower-quick button{min-width:42px}.tower-flight-main{padding:14px 18px;min-height:54px}.tower-flight-prompt{margin-top:12px;min-height:19px;font-size:12px}.tower-flight-foot{margin-top:12px;padding-top:11px}.tower-round-effect{font-size:12px;bottom:24%;letter-spacing:1px}.tower-flight-finale{padding-bottom:15%}.tower-flight-finale small{font-size:10px;letter-spacing:2px}.tower-flight-finale h3{font-size:23px;letter-spacing:3px;margin:18px 0}.tower-flight-finale p{font-size:12px;letter-spacing:1px}.tower-mode .history-panel{padding:14px}.tower-flight-rules{padding:30px 22px}.tower-flight-rules p{font-size:13px}.tower-flight-rules h2{font-size:24px}}
@media(max-width:350px){.tower-cg-stage{height:460px}.tower-flight-console{padding:17px;margin-inline:9px}.tower-chapter-heading h2{font-size:23px}.tower-chapter-heading p{max-width:90px;line-height:1.8}.tower-flight-multiplier strong{font-size:58px}.tower-flight-eyebrow{font-size:12px}.tower-flight-eyebrow small{font-size:10px}.tower-flight-main{font-size:16px}.tower-flight-finale h3{font-size:21px;letter-spacing:2px}}
@media(max-width:700px){.tower-guide{top:27%}}
@media(prefers-reduced-motion:reduce){.tower-ascent *{animation:none!important;transition:none!important}.tower-sky-dust{display:none}.tower-ascent[data-finale=won] .tower-top-beam{opacity:.7}.tower-ascent[data-finale=over] .tower-top-crown{opacity:0}.tower-ascent[data-finale=over] .tower-top-wind{opacity:.5}}

/* Carry the tower's midnight blue and lantern gold through the surrounding HUD.
   Nearly opaque surfaces keep small labels legible over the bright star field. */
.tower-mode .topbar,
.tower-mode .chapter-hud,
.tower-mode .history-panel {
  color: #f5ebd5;
  background: linear-gradient(115deg, #102239fa, #1b3048fa);
  border: 1px solid #bfa46b66;
  box-shadow: 0 8px 24px #040d2338, inset 0 1px 0 #ffe8b314;
}
.tower-mode .topbar { border-top: 0; }
.tower-mode .brand,
.tower-mode .brand small,
.tower-mode .top-location,
.tower-mode .help-button { color: #f5ebd5; }
.tower-mode .brand-symbol {
  color: #ffe9a6;
  background: linear-gradient(145deg, #344b66, #1a304a);
  border-color: #d7bd80;
  outline-color: #a58b5666;
  box-shadow: 0 0 18px #eecb6c20, inset 0 1px 0 #fff0c32e;
}
.tower-mode .live-dot { background: #f2d58c; box-shadow: 0 0 9px #f2d58c66; }
.tower-mode .coordinates,
.tower-mode .help-button span { color: #dcc798; }
.tower-mode .header-right .icon-button {
  background: #263d56;
  border-color: #c8ae7266;
  color: #ffe5a3;
  box-shadow: none;
}
.tower-mode .header-right .help-button:hover,
.tower-mode .header-right .icon-button:hover { color: #fff6dc; background: #354c65; }
.tower-mode .bond-hud {
  background: #263b52;
  border-color: #c9ae7266;
  box-shadow: inset 0 1px 0 #fff0c310;
}
.tower-mode .bond-hud small { color: #d8dfeb; }
.tower-mode .bond-hud strong { color: #fff0c4; }
.tower-mode .bond-hud>span:first-child { color: #efc8b9; }
.tower-mode .bond-hud i { background: #112137; }
.tower-mode .bond-hud b { background: linear-gradient(90deg, #c0a365, #f4d898); }
.tower-mode .chapter-name h1 { color: #fff0c6; text-shadow: 0 1px 2px #060f23; }
.tower-mode .chapter-name h1>span:first-child {
  color: #f2d48e;
  border-right-color: #cbb47a66;
}
.tower-mode .chapter-name h1>i,
.tower-mode .chapter-name>.eyebrow { color: #ddca9c; }
.tower-mode .hud-stats>.camp-prop .prop-name,
.tower-mode .hud-stats>.wallet>.wallet-name,
.tower-mode .supply-pack #toll-status {
  color: #ffedbd;
  background: #24394f;
  border-color: #cbb17b;
  box-shadow: 0 2px 4px #08142633;
  text-shadow: none;
}
/* Keep the amounts printed on the illustrated paper dark and high contrast. */
.tower-mode .travel-pass .prop-figure>strong { color: #344c56; }
.tower-mode .travel-pass .prop-figure>strong>small { color: #45545a; }
.tower-mode .history-panel { border-radius: 18px; padding: 18px 20px; }
.tower-mode .history-title h2 { color: #fff0c6; }
.tower-mode .history-title h2>span,
.tower-mode .history-title>span { color: #d6e0ed; }
.tower-mode .empty-history { color: #d6e0ed; }
.tower-mode .history-card { background: #243b50; border-color: #c2aa6d80; }
.tower-mode .history-card>span,
.tower-mode .history-card strong { color: #ffe3a0; }
.tower-mode .history-card small { color: #e0e8f0; }
.tower-mode .history-card.loss { background: #353447; border-color: #c5988d80; }
.tower-mode .history-card.loss>span,
.tower-mode .history-card.loss strong { color: #f3c6b6; }
.tower-mode .history-card.loss small { color: #eee0dc; }
.tower-mode .topbar :focus-visible,
.tower-mode .chapter-hud :focus-visible { outline-color: #ffe3a0; }
@media(max-width:700px) {
  .tower-mode .chapter-hud { padding: 10px 6px 16px; }
  .tower-mode .history-panel { padding: 14px; }
}
