/* 新欢迎页覆盖旧圆盘布局；场景中的百分比坐标共用同一尺寸舞台。 */
body[data-route="welcome"] .autumn-stage{height:clamp(650px,calc(100svh - 174px),850px);min-height:650px;max-width:1100px;}
.crossroads-field{position:absolute;left:0;right:0;top:132px;bottom:0;}
.crossroads-road{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.crossroads-paths{position:absolute;inset:0;width:100%;height:100%;max-width:none;pointer-events:none;}
.crossroads-field .crossroad-door{position:absolute;top:1%;width:100px;height:35%;max-height:235px;transform:translateX(-50%);}
.crossroads-field .crossroad-door-guest{left:17%;}
.crossroads-field .crossroad-door-verify{left:83%;}
.crossroads-field .door-frame{width:100%;height:100%;}
.crossroads-field .door-label{position:absolute;left:0;top:-27px;width:100%;margin:0;font-size:15px;text-align:center;}
.crossroads-field .garden-gate{overflow:hidden;}
.crossroads-field .door-description{display:none;}
.crossroad-sign{position:absolute;left:50%;top:10%;width:128px;height:186px;transform:translateX(-50%);color:#879da6;}
.sign-pole{position:absolute;width:9px;top:43%;bottom:0;left:calc(50% - 4px);background:linear-gradient(90deg,#baa78066,#dfd0ae88,#bfae8766);border-radius:3px;transform:rotate(1deg);}
.sign-board{position:relative;background:#fffaf0d9;border:1px solid #c9b98d77;border-radius:9px 5px 8px 5px;box-shadow:2px 3px 0 #c4b28716;transform:rotate(-3deg);padding:8px;}
.sign-destination{display:block;text-align:center;font-size:10px;white-space:nowrap;color:#aa9570;}
.sign-board svg{display:block;margin:0 auto;width:80px;height:80px;fill:none;stroke:#b6c3c1;stroke-width:1;}
.sign-board small{display:block;text-align:center;font-size:9px;letter-spacing:1px;color:#afab96;}
.sign-needle{transform:rotate(var(--sign-angle,0deg));transform-origin:50px 50px;fill:#dac58a99;stroke:#bba77477;}
.sign-center{fill:#b0bbae;}
#guide-anchor{position:absolute;left:50%;top:calc(68% - 195px);width:195px;height:195px;transform:translateX(-50%);}
.welcome-story{position:absolute;left:0;bottom:calc(100% + 12px);width:220px;padding:15px 18px;background:#fffcf5f2;border:1px solid #d5c39788;border-radius:17px 19px 15px 4px;color:#6d8ba4;transform:rotate(-2deg);}
.welcome-story:after{content:"";position:absolute;left:var(--story-tip,7px);bottom:-15px;width:13px;height:22px;background:#fffcf5;border-left:1px solid #d5c39788;transform:skew(-28deg);clip-path:polygon(0 0,100% 0,0 100%);}
.story-label{font-size:9px;color:#b5a477;letter-spacing:1px;}
.welcome-story p{min-height:52px;margin:8px 0;font-size:16px;line-height:1.8;}
.story-skip{border:0;background:none;padding:2px 0;color:#b5ad98;font-size:9px;}
/* 非正圆的一笔轮廓，留出右下尖角，指向角色头部左上方。 */
.welcome-emotion{position:absolute;right:calc(100% - 38px);top:-39px;width:120px;height:86px;display:grid;place-items:center;padding:0 10px 12px 0;font-size:16px;color:#929875;white-space:nowrap;transform:rotate(-7deg);}
.emotion-frame{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:#fffaf0f2;stroke:#acaa87;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;}
.emotion-text{position:relative;}
.story-finished .typewriter-caret{display:none;}
.portrait-back{display:none;}
/* 背面素材替换欢迎页正面，尾巴仍为独立图层且绕尾根左右摇。 */
.guide.welcome .autumn-character :is(.portrait-idle,.portrait-blink,.portrait-inspect,.portrait-rub){display:none!important;}
.guide.welcome .portrait-back{display:block;}
.guide.welcome .guide-caption{display:none;}
.guide.welcome .character-float{animation:none!important;}
.welcome-whale-tail{display:none;}
.guide.welcome .autumn-tail{display:none;}
/* 尾根固定在后背中线；故事进行中保持静止，最后一句结束后从中立位置起摆。 */
.guide.welcome .welcome-whale-tail{display:block;transform-origin:512px 790px;animation:none;}
.guide.welcome.welcome-story-complete .welcome-whale-tail{animation:crossroad-tail 3.2s ease-in-out infinite;}
/* 加宽尾鳍配合更大的摆角，让左右摆动在小尺寸角色上也可读。 */
@keyframes crossroad-tail{0%,50%,100%{transform:rotate(0deg)}25%{transform:rotate(24deg)}75%{transform:rotate(-24deg)}}
.reduce-motion .guide.welcome .welcome-whale-tail{animation:none!important;}
@media(min-width:701px) and (max-width:1000px){
  .crossroads-field .crossroad-door-guest{left:10%;}.crossroads-field .crossroad-door-verify{left:90%;}
  .welcome-story{padding:12px 14px;}.welcome-story p{font-size:14px;}
}
@media(max-width:700px){
  body[data-route="welcome"] .autumn-stage{height:800px;min-height:800px;}
  .crossroads-field{top:132px;bottom:12px;}
  .crossroads-field .crossroad-door{top:1%;width:66px;height:180px;}
  .crossroads-field .crossroad-door-guest{left:12%;}.crossroads-field .crossroad-door-verify{left:88%;}
  .crossroads-field .door-label{font-size:12px;top:-25px;}
  .crossroads-field .door-description{display:none;}
  .crossroad-sign{top:22%;width:100px;height:152px;}
  .sign-board svg{width:63px;height:63px;}.sign-destination{font-size:8px;}.sign-board small{font-size:7px;}
  #guide-anchor{top:calc(68% - 95px);width:142px;height:142px;}
  .welcome-story{padding:10px 11px;}
  .story-label{font-size:8px;letter-spacing:0;}.welcome-story p{font-size:13px;min-height:70px;}
  .welcome-emotion{right:calc(100% - 28px);top:-32px;width:96px;height:70px;font-size:13px;}
}
@media(max-width:360px){.crossroads-field .crossroad-door{width:57px;height:160px;}.welcome-story{padding:9px;}.welcome-story p{font-size:12px;}.welcome-emotion{font-size:12px;}}

/* 台词参与操作，颜表情只作装饰；底边固定在头顶，长句向上扩展。 */
.guide.welcome .welcome-story{pointer-events:auto;top:auto;transform:none;}
.guide.welcome .welcome-emotion{pointer-events:none;}

.welcome-story{text-align:left;}
.welcome-story.story-beside:after{left:-13px;top:var(--story-tip-y,30px);bottom:auto;width:22px;height:13px;border-left:0;border-bottom:1px solid #d5c39788;transform:skewY(-28deg);clip-path:polygon(100% 0,100% 100%,0 100%);}

/* 完整木牌画稿承担轮廓、木纹和支杆；文字与指针叠在留白牌面上。 */
.crossroad-sign{top:2%;width:128px;height:192px;}
.sign-ink-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;}
.sign-board{position:absolute;left:7%;right:7%;top:12%;height:35%;padding:0;background:none;border:0;border-radius:0;box-shadow:none;transform:rotate(5deg);}
.sign-destination{font-size:10px;color:#89724f;}
.sign-board svg{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);width:75px;height:75px;}
.sign-board small{position:absolute;top:90%;left:0;width:100%;font-size:8px;color:#8c805f;}
.sign-needle{fill:#cab574cc;stroke:#776c4b;stroke-width:.7;}
@media(max-width:700px){
  .crossroad-sign{width:112px;height:172px;}
  .sign-destination{font-size:8px;}.sign-board small{font-size:6px;letter-spacing:0;}
  .sign-board svg{width:55px;height:55px;}
}
