.castle-profile{padding:18px;border:1px solid #828b5c;background:linear-gradient(145deg,#2c412d,#142b1e);margin-bottom:14px}.castle-profile h3{font-size:26px;margin:8px 0;color:#eddda6}.profile-alliance{color:#bdc799;font-size:12px;margin:0}.profile-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0;border-block:1px solid #74815b66}.profile-stat-grid small,.profile-stat-grid strong{display:block}.profile-stat-grid strong{font:25px Georgia;color:#e7cc7e;margin-top:5px}.profile-stat-grid small{color:#c1cba7}.resource-owners{font-size:10px;background:#173620df;color:#e8e9c0;padding:3px 5px;border:1px solid #8a9d64;max-width:180px;white-space:normal}.siege-impact{display:none;position:absolute;left:0;top:-160px;width:200px;height:200px;pointer-events:none}.attacking .siege-impact{display:block}.training-soldier{position:absolute;width:24px;height:24px;pointer-events:none;transform:translate(-50%,-100%)}.training-figure{display:block;width:100%;height:100%;background:url('assets/art/march-units-v04.png') 66.666% 0/400% 600%;filter:drop-shadow(1px 2px 1px #14201599);animation:train-blade 1.6s ease-in-out var(--training-delay) infinite}.training-cavalry .training-figure{background-position-y:40%;animation-name:train-cavalry}.training-archer .training-figure{background-position-y:80%;animation-name:train-bow}.training-cavalry{width:29px;height:29px}.training-motion{position:absolute;left:16px;top:7px;width:8px;height:1px;background:#e8ddb0;opacity:0;animation:train-spark 1.6s ease-in-out var(--training-delay) infinite}.training-archer .training-motion{width:14px;animation-name:train-arrow}@keyframes train-blade{0%,55%,100%{rotate:0deg;translate:0 0}20%,35%{rotate:-9deg;translate:1px -1px}}@keyframes train-cavalry{0%,50%,100%{rotate:0deg;translate:0 0}25%{rotate:3deg;translate:0 -2px}}@keyframes train-bow{0%,65%,100%{scale:1;rotate:0deg}25%,45%{scale:.94 1;rotate:-4deg}}@keyframes train-spark{0%,20%,45%,100%{opacity:0}30%,35%{opacity:.8;rotate:-30deg}}@keyframes train-arrow{0%,45%,85%,100%{opacity:0;translate:0 0}50%{opacity:.9;translate:0 0}75%{opacity:0;translate:17px -7px}}
.story-screen{position:fixed;inset:0;z-index:200;background:#0a1711;color:#ece3be;overflow:hidden;display:grid;align-items:end;font-family:Georgia,'Noto Serif TC',serif}.story-art{position:absolute;inset:-6%;background:url('assets/art/city-scene-v3.png') center 35%/cover;filter:brightness(.6) saturate(.75);transition:background-position 2s,filter 2s;animation:story-camera 28s linear both}.story-screen[data-scene=mist] .story-art{background-position:50% 10%;filter:brightness(.3) saturate(.45)}.story-screen[data-scene=lantern] .story-art{background-position:50% 80%;filter:brightness(.55) sepia(.2)}.story-screen[data-scene=oath] .story-art{background-position:50% 60%;filter:brightness(.6)}.story-screen[data-scene=dawn] .story-art{background-position:50% 20%;filter:brightness(.85) saturate(.9)}.story-screen:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 10%,#0b1b1370 35%,#07140df5 90%);pointer-events:none}.story-mist{position:absolute;inset:-20%;background:radial-gradient(ellipse,#c5d9c22b,transparent 65%);animation:story-mist 12s ease-in-out infinite alternate}.story-skip{position:absolute;z-index:3;top:calc(20px + env(safe-area-inset-top,0px));right:20px;padding:11px 16px;min-height:44px;background:#10251bd9;color:#f1dfab;border:1px solid #a89762;border-radius:3px;font:14px Georgia}.story-caption{position:relative;z-index:2;width:min(680px,calc(100% - 40px));margin:0 auto;padding:30px 0 calc(24px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 80px);overflow:auto;text-shadow:0 2px 6px #000}.story-kicker{font-size:12px;letter-spacing:4px;color:#c3bc8e}.story-caption h2{font-size:clamp(30px,6vw,52px);font-weight:400;margin:15px 0;letter-spacing:6px;color:#f4dda0}.story-text{font-size:clamp(15px,2vw,18px);line-height:2}.story-caption blockquote{margin:20px 0 6px;padding:0;border:0;font-size:16px;color:#dacb9a;line-height:1.8}.story-speaker{font-size:12px;color:#bbc6a7;text-align:right}.story-city-name{display:block;font-size:24px;letter-spacing:5px;color:#f3da8f;margin:12px 0}.story-footer{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:14px;border-top:1px solid #9a926155;position:relative}.story-footer:before{content:'';position:absolute;top:-1px;left:0;width:var(--story-progress);border-top:2px solid #e6c777}.story-progress{font-size:12px;letter-spacing:3px}.story-next{padding:12px 18px;min-height:44px;background:linear-gradient(#55633b,#2d4028);border:1px solid #b2a66c;color:#f6e6b5;font:inherit}.story-embers{position:absolute;inset:0;pointer-events:none}.story-embers i{position:absolute;bottom:20%;left:30%;width:3px;height:3px;border-radius:50%;background:#efc268;box-shadow:0 0 10px #f6c563;animation:story-ember 5s linear infinite}.story-embers i:nth-child(2){left:65%;animation-delay:-2s}.story-embers i:nth-child(3){left:48%;animation-delay:-3s}.story-embers i:nth-child(4){left:75%;animation-delay:-1s}@keyframes story-camera{from{transform:scale(1.08) translateY(2%)}to{transform:scale(1) translateY(-2%)}}@keyframes story-mist{to{transform:translateX(9%);opacity:.35}}@keyframes story-ember{from{transform:translate(0,0);opacity:0}20%{opacity:.8}to{transform:translate(25px,-240px);opacity:0}}@media(max-width:600px){.story-caption{width:calc(100% - 36px)}.story-caption h2{font-size:30px}.story-text{font-size:15px}.story-caption blockquote{font-size:14px}}@media(prefers-reduced-motion:reduce){.story-screen *,.training-figure,.training-motion{animation:none!important;transition:none!important}}.feature-open .training-figure,.feature-open .training-motion{animation-play-state:paused}

.march-line.pending-route{display:none}
