/* Approved actor cut-in; scoped to notices with an actor. */
/* Content outside this actor notice (including phone cards) is untouched. */
#boardNotice[data-actor][data-flow=effects]{width:min(940px,calc(100vw - var(--board-safe-left,420px) - 40px));top:calc(50% + 30px)}
#boardNotice[data-actor] .messageWindow{padding:28px 34px 24px}
#boardNotice[data-actor] .effectHeading h2{margin:0 0 16px;text-align:center;font-size:30px;font-weight:500;letter-spacing:.1em;color:#f2dfb0}
#boardNotice[data-actor] .effectLayout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:center;min-height:290px}
#boardNotice[data-actor] .effectSource{display:grid;justify-items:center;align-content:center;gap:6px}
#boardNotice[data-actor] img{object-fit:contain}
#boardNotice[data-actor] .sourceArt{width:240px;height:240px}
#boardNotice[data-actor] .effectSource>b{font-size:20px;font-weight:500}
#boardNotice[data-actor] .facility .sourceArt{height:265px}
#boardNotice[data-actor] .effectOwner{display:flex;align-items:center;justify-content:center;gap:8px;font-size:16px;color:#cabd9f}
#boardNotice[data-actor] .effectOwner img{width:43px;height:46px}
#boardNotice[data-actor] .effectResult{min-width:0;text-align:center}
#boardNotice[data-actor] .effectArrow{display:inline-block;width:34px;min-width:24px;height:1px;background:#d8bd78;position:relative;margin:0 5px;vertical-align:middle;flex-shrink:0}
#boardNotice[data-actor] .effectArrow:after{content:'';position:absolute;right:0;top:-4px;width:8px;height:8px;border-top:1px solid #d8bd78;border-right:1px solid #d8bd78;transform:rotate(45deg)}
#boardNotice[data-actor] .metric{display:flex;align-items:center;justify-content:center;gap:18px;min-width:0}
#boardNotice[data-actor] .metricIcon{width:68px;height:68px;flex-shrink:0}
#boardNotice[data-actor] .metric small,#boardNotice[data-actor] .valuePair>small{display:block;font-size:16px;color:#cabd9f;margin-bottom:7px}
#boardNotice[data-actor] .metric strong{display:block;font-size:56px;font-weight:500;white-space:nowrap;color:#f1d38f;font-variant-numeric:tabular-nums;line-height:1.3}
#boardNotice[data-actor] em{font-size:20px;font-style:normal;margin-left:5px}
#boardNotice[data-actor] .effectCash{display:flex;justify-content:center;align-items:center;gap:10px;margin:26px 0 0;padding-top:16px;border-top:1px solid #cfb57435;font-variant-numeric:tabular-nums;font-size:21px}
#boardNotice[data-actor] .effectCash>span:first-child{font-size:13px;color:#beb49e}
#boardNotice[data-actor] .effectCash b{font-weight:500;color:#ead29a}
#boardNotice[data-actor] .effectFooter{text-align:center;border-top:1px solid #cfb57430;padding-top:12px;margin-top:15px;font-size:14px;color:#bcae8d}
#boardNotice[data-actor] .effectFooter b{font-size:20px;font-weight:500;margin:0 4px}
#boardNotice[data-actor] .effectTarget{display:grid;justify-items:center;gap:4px;min-width:0;width:150px}
#boardNotice[data-actor] .effectTarget>img{height:150px;width:150px}
#boardNotice[data-actor] .effectTarget>span{color:#bdaf8d;font-size:13px}
#boardNotice[data-actor] .effectTarget>b{font-size:17px;font-weight:500;white-space:nowrap}
#boardNotice[data-actor] .targetResult,#boardNotice[data-actor] .creaturePair{display:flex;align-items:center;justify-content:center;gap:14px}
#boardNotice[data-actor] .valuePair{margin:20px auto;font-variant-numeric:tabular-nums}
#boardNotice[data-actor] .valuePair>div{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-size:37px}
#boardNotice[data-actor] .valuePair span:not(.effectArrow){color:#aaa395;font-size:.77em}
#boardNotice[data-actor] .valuePair b{font-weight:500;color:#f1d38f}
#boardNotice[data-actor] .heal b,#boardNotice[data-actor] .heal strong{color:#b6e4c6}
#boardNotice[data-actor] .damage b,#boardNotice[data-actor] .damage{color:#eeaa98}
#boardNotice[data-actor] .shortHint{font-size:17px;color:#c9b995;margin:20px 0 0}
#boardNotice[data-actor] .plainResult{font-size:32px;color:#d6c9ac}
#boardNotice[data-actor] .conversion{display:flex;align-items:center;justify-content:center;gap:9px}
#boardNotice[data-actor] .conversion .metric{flex-direction:column;gap:8px}
#boardNotice[data-actor] .conversion .metricIcon{width:48px;height:48px}
#boardNotice[data-actor] .conversion .metric strong{font-size:43px}
#boardNotice[data-actor] .conversion .effectArrow{margin-top:48px}
#boardNotice[data-actor] .miniTargets{height:142px;position:relative;margin-top:20px;border-top:1px solid #cfb57430;padding-top:12px}
#boardNotice[data-actor] .miniTargetsCount{font-size:14px;color:#c5d1bb}
#boardNotice[data-actor] .miniPage{position:absolute;inset:34px 0 14px;display:flex;justify-content:center;gap:26px;opacity:0;visibility:hidden;transition:opacity .35s}
#boardNotice[data-actor] .miniPage.active{visibility:visible;opacity:1}
#boardNotice[data-actor] .miniPage>span{display:grid;justify-items:center;gap:2px}
#boardNotice[data-actor] .miniPage img{width:49px;height:49px}
#boardNotice[data-actor] .miniPage b{color:#b6e4c6;font-size:17px;font-weight:500}
#boardNotice[data-actor] .miniPage small{color:#bdaf8d;font-size:11px}
#boardNotice[data-actor] .miniDots{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:8px}
#boardNotice[data-actor] .miniDots i{width:4px;height:4px;background:#73674b;transform:rotate(45deg)}
#boardNotice[data-actor] .miniDots i.active{background:#efd69e}
#boardNotice[data-actor] .stopResult{display:flex;align-items:center;justify-content:center;gap:25px}
#boardNotice[data-actor] .stoppedPawn{width:130px;height:180px}
#boardNotice[data-actor] .stopResult strong{display:block;font-size:29px;font-weight:500;margin:12px 0}
#boardNotice[data-actor] .stopResult small{color:#b6a889}
#boardNotice[data-actor] .stopIcon{display:inline-block;width:46px;height:46px;border:2px solid #dec88c;position:relative;transform:rotate(45deg)}
#boardNotice[data-actor] .stopIcon:after{content:'';position:absolute;inset:10px;border:1px solid #dec88c}
#boardNotice[data-actor] .markArt{width:140px;height:150px}
#boardNotice[data-actor] .sourceCard{width:166px;height:260px}
#boardNotice[data-actor] review-game-card{display:block;width:100%;height:100%}
#boardNotice[data-actor] .spellSource{gap:12px}
#boardNotice[data-actor] .effectPill{margin:24px auto 0;padding-top:13px;border-top:1px solid #cfb57435;color:#d9c693;font-size:19px;display:flex;align-items:center;justify-content:center;gap:8px}
#boardNotice[data-actor] .effectPill img{width:24px;height:24px}
#boardNotice[data-actor] .moveTrack{display:flex;align-items:center;justify-content:center;gap:18px}
#boardNotice[data-actor] .moveTrack>div{display:grid;justify-items:center;gap:12px}
#boardNotice[data-actor] .moveTrack img{width:130px;height:155px}
#boardNotice[data-actor] .moveTrack small{font-size:15px;color:#cabb98}
#boardNotice[data-actor] .elementPair{display:flex;align-items:center;gap:10px}
#boardNotice[data-actor] .elementPair>img{width:50px;height:50px}
#boardNotice[data-actor] .shieldIcon{display:inline-block;width:58px;height:65px;border:2px solid #cbb376;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%);background:linear-gradient(135deg,#cbb37644,#cbb37605)}
#boardNotice[data-actor] .barrierValue{font-size:31px!important}
#boardNotice[data-actor].enter .messageWindow{animation:effectEnter .35s ease-out both}
#boardNotice[data-actor].illuminated .metricIcon,#boardNotice[data-actor].illuminated .resultGlow{animation:effectGlow 1.15s ease-in-out both}
#boardNotice[data-actor].illuminated .conversion .metric:last-child .metricIcon{animation-delay:.65s}
#boardNotice[data-actor].leaving{opacity:0;transition:opacity .2s}
@keyframes effectEnter{from{opacity:0}to{opacity:1}}
@keyframes effectGlow{0%,100%{filter:brightness(1)}45%{filter:brightness(1.45) drop-shadow(0 0 12px #e7c978)}}
@media(max-width:1300px){
 #boardNotice[data-actor] .messageWindow{padding:24px 25px}
 #boardNotice[data-actor] .effectLayout{grid-template-columns:180px minmax(0,1fr);gap:14px}
 #boardNotice[data-actor] .sourceArt{width:180px;height:210px}
 #boardNotice[data-actor] .facility .sourceArt{height:235px}
 #boardNotice[data-actor] .effectTarget{width:115px}
 #boardNotice[data-actor] .effectTarget>img{width:115px;height:130px}
 #boardNotice[data-actor] .effectTarget>b{font-size:14px}
 #boardNotice[data-actor] .metric strong{font-size:46px}
 #boardNotice[data-actor] .metricIcon{width:55px;height:55px}
 #boardNotice[data-actor] .metric{gap:10px}
 #boardNotice[data-actor] .valuePair>div{font-size:31px}
 #boardNotice[data-actor] .effectArrow{width:25px}
 #boardNotice[data-actor] .targetResult,#boardNotice[data-actor] .creaturePair{gap:9px}
 #boardNotice[data-actor] .markArt{width:105px}
 #boardNotice[data-actor] .moveTrack img{width:105px;height:130px}
 #boardNotice[data-actor] .conversion .metric strong{font-size:36px}
}
@media(max-width:1100px){
 #boardNotice[data-actor] .effectLayout{grid-template-columns:145px minmax(0,1fr);gap:10px}
 #boardNotice[data-actor] .sourceArt{width:150px;height:180px}
 #boardNotice[data-actor] .effectHeading h2{font-size:25px}
 #boardNotice[data-actor] .sourceCard{width:138px;height:216.2px}
 #boardNotice[data-actor] .effectTarget{width:94px}
 #boardNotice[data-actor] .effectTarget>img{width:94px;height:112px}
 #boardNotice[data-actor] .effectTarget>b{font-size:12px}
 #boardNotice[data-actor] .effectOwner{font-size:14px}
 #boardNotice[data-actor] .valuePair>div{font-size:25px}
 #boardNotice[data-actor] .valuePair>small{font-size:14px}
 #boardNotice[data-actor] .metric strong{font-size:39px}
 #boardNotice[data-actor] .conversion .metric strong{font-size:30px}
 #boardNotice[data-actor] em{font-size:15px}
 #boardNotice[data-actor] .elementPair{gap:3px}
 #boardNotice[data-actor] .elementPair>img{width:35px;height:35px}
 #boardNotice[data-actor] .moveTrack{gap:6px}
 #boardNotice[data-actor] .moveTrack img{width:88px;height:115px}
 #boardNotice[data-actor] .effectCash{gap:6px;font-size:18px}
 #boardNotice[data-actor] .markArt{width:72px}
 #boardNotice[data-actor] .stoppedPawn{width:95px}
 #boardNotice[data-actor] .stopResult{gap:12px}
 #boardNotice[data-actor] .stopResult strong{font-size:23px}
 #boardNotice[data-actor] .barrierValue{font-size:25px!important}
}
/* Revision 2: a larger actor and a compact, aligned outcome group. */
#boardNotice[data-actor][data-flow=effects]{width:min(880px,calc(100vw - var(--board-safe-left,420px) - 40px))}
#boardNotice[data-actor] .effectLayout{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:20px;min-height:300px}
#boardNotice[data-actor] .effectHeading h2{margin-bottom:12px}
#boardNotice[data-actor] .effectSource{gap:3px}
#boardNotice[data-actor] .sourceArt{width:100%;max-width:320px;height:282px;object-position:center bottom;filter:none}
#boardNotice[data-actor] .facility .sourceArt{height:282px;max-width:240px}
#boardNotice[data-actor] .effectSource>b{margin-top:5px}
#boardNotice[data-actor] .effectOwner{gap:8px;height:45px}
#boardNotice[data-actor] .effectOwner img{width:45px;height:45px;filter:none}
#boardNotice[data-actor] .effectResult{width:100%;max-width:440px;justify-self:start}
#boardNotice[data-actor] .targetResult{gap:16px}
#boardNotice[data-actor] .targetResult .valuePair{margin:0}
#boardNotice[data-actor] .effectTarget{width:180px;flex-shrink:0}
#boardNotice[data-actor] .effectTarget>img{width:180px;height:190px;filter:none}
#boardNotice[data-actor] .effectTarget>b{font-size:16px}
#boardNotice[data-actor] .valuePair>div{font-size:40px;gap:4px}
#boardNotice[data-actor] .effectCash{margin-top:22px}
#boardNotice[data-actor] .creaturePair{gap:8px}
#boardNotice[data-actor] .creaturePair .effectTarget{width:165px}
#boardNotice[data-actor] .creaturePair .effectTarget>img{width:165px;height:180px}
#boardNotice[data-actor] .effectFooter{margin-top:12px}
#boardNotice[data-actor] .conversion{gap:12px}
#boardNotice[data-actor] .miniTargets{margin-top:12px}
#boardNotice[data-actor] .miniPage{gap:30px}
#boardNotice[data-actor] .miniPage img{width:58px;height:54px;filter:none}
#boardNotice[data-actor] .stoppedPawn{width:165px;height:205px;filter:none}
#boardNotice[data-actor] .markArt{width:160px;height:180px;filter:none}
#boardNotice[data-actor] .moveTrack{gap:12px}
#boardNotice[data-actor] .moveTrack img{width:165px;height:190px;filter:none}
#boardNotice[data-actor][data-scene=spell] .effectLayout{grid-template-columns:210px minmax(0,1fr);gap:20px}
#boardNotice[data-actor][data-scene=spell] .effectResult{max-width:none}
#boardNotice[data-actor] .sourceCard{width:180px;height:282px}
#boardNotice[data-actor] .spellSource{gap:8px}
#boardNotice[data-actor] .elementPair{gap:8px}
#boardNotice[data-actor] .effectPill{margin-top:17px}
@media(max-width:1300px){
 #boardNotice[data-actor] .sourceArt{height:254px}
 #boardNotice[data-actor] .facility .sourceArt{height:254px;max-width:215px}
 #boardNotice[data-actor] .effectTarget{width:138px}
 #boardNotice[data-actor] .effectTarget>img{width:138px;height:156px}
 #boardNotice[data-actor] .effectTarget>b{font-size:14px}
 #boardNotice[data-actor] .creaturePair .effectTarget{width:123px}
 #boardNotice[data-actor] .creaturePair .effectTarget>img{width:123px;height:151px}
 #boardNotice[data-actor] .valuePair>div{font-size:33px}
 #boardNotice[data-actor] .metric strong{font-size:48px}
 #boardNotice[data-actor] .conversion .metric strong{font-size:38px}
 #boardNotice[data-actor] .moveTrack img{width:136px;height:165px}
 #boardNotice[data-actor] .markArt{width:113px;height:150px}
 #boardNotice[data-actor][data-scene=spell] .effectLayout{grid-template-columns:180px minmax(0,1fr);gap:16px}
 #boardNotice[data-actor] .sourceCard{width:164px;height:256.93px}
}
@media(max-width:1100px){
 #boardNotice[data-actor] .effectLayout{grid-template-columns:minmax(0,185px) minmax(0,1fr);gap:12px;min-height:260px}
 #boardNotice[data-actor] .sourceArt{height:215px}
 #boardNotice[data-actor] .facility .sourceArt{height:224px}
 #boardNotice[data-actor] .effectSource>b{font-size:17px}
 #boardNotice[data-actor] .effectOwner img{width:39px;height:40px}
 #boardNotice[data-actor] .effectTarget{width:112px}
 #boardNotice[data-actor] .effectTarget>img{width:112px;height:133px}
 #boardNotice[data-actor] .effectTarget>b{font-size:12px}
 #boardNotice[data-actor] .creaturePair .effectTarget{width:100px}
 #boardNotice[data-actor] .creaturePair .effectTarget>img{width:100px;height:130px}
 #boardNotice[data-actor] .targetResult{gap:10px}
 #boardNotice[data-actor] .valuePair>div{font-size:28px}
 #boardNotice[data-actor] .metric strong{font-size:40px}
 #boardNotice[data-actor] .conversion{gap:3px}
 #boardNotice[data-actor] .conversion .metric strong{font-size:30px}
 #boardNotice[data-actor] .stoppedPawn{width:120px;height:170px}
 #boardNotice[data-actor] .markArt{width:75px;height:145px}
 #boardNotice[data-actor] .moveTrack img{width:110px;height:144px}
 #boardNotice[data-actor] .moveTrack{gap:6px}
 #boardNotice[data-actor][data-scene=spell] .effectLayout{grid-template-columns:150px minmax(0,1fr);gap:12px}
 #boardNotice[data-actor] .sourceCard{width:143px;height:224.03px}
}
/* Revision 3: number-centred icons and three actor-identification proposals. */
#boardNotice[data-actor] .metric{display:flex;flex-direction:column;gap:9px}
#boardNotice[data-actor] .metric .metricLabel{margin:0;line-height:1.2}
#boardNotice[data-actor] .metricValue{display:flex;align-items:center;justify-content:center;gap:14px}
#boardNotice[data-actor] .metricValue strong{line-height:1.08}
#boardNotice[data-actor] .metricValue .metricIcon{height:56px;width:56px;display:block}
#boardNotice[data-actor] .conversion .metricValue{gap:8px}
#boardNotice[data-actor] .conversion .metricIcon{width:39px;height:39px}
#boardNotice[data-actor] .conversion .effectArrow{margin-top:28px}
#boardNotice[data-actor] .miniTargets{height:127px}
#boardNotice[data-actor][data-scene=spell] .sourceCard{transform:translateX(32px)}
#boardNotice[data-actor][data-scene=shrine]:not([data-variant=gold]) .facility .sourceArt{transform:translateY(-28px);object-position:center}
#boardNotice[data-actor] .effectHeading{position:relative;display:flex;align-items:center;gap:22px;min-height:78px;margin-bottom:18px}
#boardNotice[data-actor] .effectHeading h2{margin:0;min-width:0;line-height:1.3;font-size:28px}
/* Revision 5: narrow portrait cutout with CSS backdrop and overlapping name. */
#boardNotice[data-actor][data-owner=g]{--stand-w:320px;--stand-h:480px;width:min(1060px,calc(100vw - var(--board-safe-left,420px) - 36px));top:54%}
#boardNotice[data-actor][data-owner=g] .messageWindow{width:calc(100% - var(--stand-w) + 24px);box-sizing:border-box;z-index:2;padding:25px 28px;min-height:345px}
#boardNotice[data-actor][data-owner=g] .effectHeading{justify-content:center;min-height:40px;margin-bottom:18px}
#boardNotice[data-actor][data-owner=g] .effectHeading .actorBadge{display:none}
#boardNotice[data-actor][data-owner=g] .effectHeading h2{font-size:27px;text-align:center}
#boardNotice[data-actor][data-owner=g] .effectLayout{grid-template-columns:190px minmax(0,1fr);gap:15px;min-height:260px}
#boardNotice[data-actor][data-owner=g] .sourceArt{height:240px}
#boardNotice[data-actor][data-owner=g] .facility .sourceArt{height:245px}
#boardNotice[data-actor][data-owner=g] .sourceCard{width:156px;height:244.4px;transform:translateX(12px)}
#boardNotice[data-actor][data-owner=g] .effectTarget{width:135px}
#boardNotice[data-actor][data-owner=g] .effectTarget>img{width:135px;height:155px}
#boardNotice[data-actor][data-owner=g] .effectTarget>b{font-size:14px}
#boardNotice[data-actor][data-owner=g] .creaturePair .effectTarget{width:130px}
#boardNotice[data-actor][data-owner=g] .creaturePair .effectTarget>img{width:130px;height:155px}
#boardNotice[data-actor][data-owner=g] .valuePair>div{font-size:34px}
#boardNotice[data-actor][data-owner=g] .conversion .metric strong{font-size:35px}
#boardNotice[data-actor][data-owner=g] .conversion .metricValue{gap:5px}
#boardNotice[data-actor][data-owner=g] .conversion .metricIcon{width:30px;height:30px}
#boardNotice[data-actor][data-owner=g] .moveTrack img{width:130px;height:160px}
#boardNotice[data-actor][data-owner=g] .markArt{width:110px}
#boardNotice[data-actor] .actorStand{--stand-bottom:22px;position:absolute;top:50%;right:0;transform:translateY(-50%);width:var(--stand-w);height:var(--stand-h);z-index:3;isolation:isolate;clip-path:inset(-80px -80px var(--stand-bottom) -80px)}
#boardNotice[data-actor] .standBackdrop{position:absolute;inset:60px 4px var(--stand-bottom) 7px;background:linear-gradient(130deg,#eed898,#9d8451 48%,#d8bd7c);clip-path:polygon(17% 0,100% 0,83% 100%,0 100%);filter:drop-shadow(0 8px 14px #0008)}
#boardNotice[data-actor] .standBackdrop:before{content:'';position:absolute;inset:1px;background:#269f9b url('/assets/cards/bg-wind.webp') center/cover no-repeat;clip-path:polygon(17% 0,100% 0,83% 100%,0 100%)}
#boardNotice[data-actor] .standBackdrop:after{content:none}
#boardNotice[data-actor] .standArt{position:absolute;inset:0;filter:drop-shadow(6px 9px 7px #000b);overflow:hidden;z-index:1;mask-image:linear-gradient(to right,#000 0%,#000 86%,rgba(0,0,0,.93) 89%,rgba(0,0,0,.68) 93%,rgba(0,0,0,.28) 97%,transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 86%,rgba(0,0,0,.93) 89%,rgba(0,0,0,.68) 93%,rgba(0,0,0,.28) 97%,transparent 100%)}
#boardNotice[data-actor] .standArt img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;filter:none}
#boardNotice[data-actor] .standName{position:absolute;left:auto;right:4px;bottom:calc(var(--stand-bottom) + 34px);z-index:2;display:grid;place-items:center;width:max-content;min-width:108px;max-width:calc(100% - 16px);min-height:35px;box-sizing:border-box;padding:6px 12px;background:linear-gradient(105deg,#e9d8ac,#c5ac70);color:#1b211e;box-shadow:3px 5px 12px #0008;border-top:1px solid #f5e8c4;border-bottom:1px solid #9e8656}
#boardNotice[data-actor] .standName b{font-size:18px;font-weight:700;letter-spacing:.03em;line-height:1.2;max-width:100%;overflow-wrap:anywhere}
#boardNotice[data-actor][data-owner=g][data-side=left] .messageWindow{margin-left:auto}
#boardNotice[data-actor][data-owner=g][data-side=left] .actorStand{right:auto;left:0}
#boardNotice[data-actor][data-owner=g][data-side=left] .messageWindow{padding-left:35px}
#boardNotice[data-actor].enter .actorStand{animation:standReveal .45s ease-out both}
@keyframes standReveal{from{opacity:0;translate:8px 0}to{opacity:1;translate:0 0}}
@media(max-width:1300px){
 #boardNotice[data-actor][data-owner=g]{--stand-w:280px;--stand-h:420px}
 #boardNotice[data-actor][data-owner=g] .messageWindow{padding:23px}
 #boardNotice[data-actor][data-owner=g] .effectLayout{grid-template-columns:157px minmax(0,1fr);gap:12px}
 #boardNotice[data-actor][data-owner=g] .sourceArt{height:205px}
 #boardNotice[data-actor][data-owner=g] .sourceCard{width:139px;height:217.8px;transform:translateX(8px)}
 #boardNotice[data-actor][data-owner=g] .effectTarget{width:114px}
 #boardNotice[data-actor][data-owner=g] .effectTarget>img{width:114px;height:135px}
 #boardNotice[data-actor][data-owner=g] .effectTarget>b{font-size:12px}
 #boardNotice[data-actor][data-owner=g] .creaturePair .effectTarget{width:104px}
 #boardNotice[data-actor][data-owner=g] .creaturePair .effectTarget>img{width:104px;height:130px}
 #boardNotice[data-actor][data-owner=g] .moveTrack img{width:106px;height:137px}
 #boardNotice[data-actor][data-owner=g] .valuePair>div{font-size:29px}
 #boardNotice[data-actor][data-owner=g] .standName b{font-size:17px}
 #boardNotice[data-actor][data-owner=g] .conversion .metric strong{font-size:30px}
 #boardNotice[data-actor][data-owner=g] .markArt{width:80px}
}
@media(max-width:1100px){
 #boardNotice[data-actor][data-owner=g]{--stand-w:240px;--stand-h:360px;width:calc(100vw - var(--board-safe-left,420px) - 24px)}
 #boardNotice[data-actor][data-owner=g] .messageWindow{padding:21px 19px}
 #boardNotice[data-actor][data-owner=g] .effectHeading h2{font-size:23px}
 #boardNotice[data-actor][data-owner=g] .effectLayout{grid-template-columns:125px minmax(0,1fr);gap:8px}
 #boardNotice[data-actor][data-owner=g] .sourceArt{height:177px}
 #boardNotice[data-actor][data-owner=g] .facility .sourceArt{height:206px}
 #boardNotice[data-actor][data-owner=g] .sourceCard{width:117px;height:183.3px;transform:translateX(4px)}
 #boardNotice[data-actor][data-owner=g] .effectTarget{width:90px}
 #boardNotice[data-actor][data-owner=g] .effectTarget>img{width:90px;height:110px}
 #boardNotice[data-actor][data-owner=g] .creaturePair .effectTarget{width:85px}
 #boardNotice[data-actor][data-owner=g] .creaturePair .effectTarget>img{width:85px;height:111px}
 #boardNotice[data-actor][data-owner=g] .valuePair>div{font-size:25px}
 #boardNotice[data-actor][data-owner=g] .targetResult{gap:5px}
 #boardNotice[data-actor][data-owner=g] .metricValue{gap:7px}
 #boardNotice[data-actor][data-owner=g] .metric strong{font-size:34px}
 #boardNotice[data-actor][data-owner=g] .metricValue .metricIcon{width:36px;height:36px}
 #boardNotice[data-actor][data-owner=g] .conversion .metric strong{font-size:25px}
 #boardNotice[data-actor][data-owner=g] .conversion .metricIcon{width:21px;height:21px}
 #boardNotice[data-actor][data-owner=g] .conversion .metricValue{gap:2px}
 #boardNotice[data-actor][data-owner=g] .moveTrack img{width:87px;height:121px}
 #boardNotice[data-actor][data-owner=g] .markArt{width:60px}
 #boardNotice[data-actor][data-owner=g] .standName{padding:6px 10px;min-height:32px;min-width:96px}
 #boardNotice[data-actor][data-owner=g] .standName b{font-size:16px}
 #boardNotice[data-actor][data-owner=g] .barrierValue{font-size:21px!important}
}
/* Revision 10: three finite, bold introductions. Resting geometry stays unchanged. */
#boardActorShade{position:fixed;inset:0;z-index:89;background:#05090e;opacity:0;pointer-events:none}
#boardActorShade.active{animation:motionFocus 1.25s ease-out both}
@keyframes motionFocus{0%{opacity:0}18%,48%{opacity:.4}100%{opacity:0}}
#boardNotice[data-actor][data-owner=g]{--entry-x:155px;--drift-x:-80px;--tilt:7deg}
#boardNotice[data-actor][data-owner=g][data-side=left]{--entry-x:-155px;--drift-x:80px;--tilt:-7deg}
#boardNotice[data-actor] .motionFx{position:absolute;inset:-65px -12px;z-index:4;pointer-events:none;overflow:hidden}
#boardNotice[data-actor] .motionStreak{position:absolute;right:-15%;top:30%;width:115%;height:2px;background:linear-gradient(90deg,transparent,#b6e9dc55,#fff1bd,transparent);opacity:0;transform:rotate(-17deg);transform-origin:right center}
#boardNotice[data-actor] .motionStreak.s2{top:45%;width:80%;height:5px}
#boardNotice[data-actor] .motionStreak.s3{top:67%;width:95%;height:1px}
#boardNotice[data-actor] .motionRing{position:absolute;right:-20px;top:11%;width:270px;height:78%;border:1px solid #e9cf8a;border-radius:50%;opacity:0;box-shadow:0 0 12px #9bd5c033,inset 0 0 12px #a9d5c022}
#boardNotice[data-actor][data-side=left] .motionFx{scale:-1 1}
#boardNotice[data-actor].enter[data-owner=g][data-motion=slash] .actorStand{animation:actorSlash .65s cubic-bezier(.12,.78,.16,1) both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=slash] .messageWindow{animation:panelSlash .55s .17s cubic-bezier(.16,.78,.15,1) both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=slash] .standName{animation:nameSnap .3s .56s ease-out both}
#boardNotice[data-actor].enter[data-motion=slash] .motionStreak{animation:streakCut .5s .1s ease-out both}
#boardNotice[data-actor].enter[data-motion=slash] .motionStreak.s2{animation-delay:.16s}
#boardNotice[data-actor].enter[data-motion=slash] .motionStreak.s3{animation-delay:.22s}
@keyframes actorSlash{0%{opacity:0;translate:var(--entry-x) 65px;rotate:var(--tilt);filter:blur(3px)}20%{opacity:1}75%{translate:-5px -2px;rotate:0deg;filter:blur(0)}100%{opacity:1;translate:0 0;rotate:0deg;filter:none}}
@keyframes panelSlash{0%{opacity:0;clip-path:inset(0 0 0 100%);translate:35px 0}100%{opacity:1;clip-path:inset(0);translate:0 0}}
#boardNotice[data-actor][data-side=left][data-motion=slash] .messageWindow{animation-name:panelSlashLeft}
@keyframes panelSlashLeft{0%{opacity:0;clip-path:inset(0 100% 0 0);translate:-35px 0}100%{opacity:1;clip-path:inset(0);translate:0 0}}
@keyframes nameSnap{from{opacity:0;translate:35px 0}to{opacity:1;translate:0 0}}
@keyframes streakCut{0%{opacity:0;translate:40% 0;scale:.7 1}32%{opacity:.9}100%{opacity:0;translate:-30% 0;scale:1.25 1}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact] .actorStand{animation:actorImpact .85s cubic-bezier(.13,.73,.2,1) both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact] .messageWindow{animation:panelImpact .52s .28s cubic-bezier(.1,.7,.2,1) both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact] .standName{animation:nameImpact .35s .64s ease-out both}
#boardNotice[data-actor].enter[data-motion=impact] .motionRing{animation:impactRing .65s .26s ease-out both}
@keyframes actorImpact{0%{opacity:0;scale:1.7;translate:var(--drift-x) -20px;filter:blur(3px)}18%{opacity:1}70%{scale:.97;translate:0 0;filter:blur(0)}100%{opacity:1;scale:1;translate:0 0;filter:none}}
@keyframes panelImpact{0%{opacity:0;scale:.88;filter:blur(3px)}75%{opacity:1;scale:1.012;filter:blur(0)}100%{opacity:1;scale:1;filter:none}}
@keyframes nameImpact{0%{opacity:0;scale:1.2}100%{opacity:1;scale:1}}
@keyframes impactRing{0%{opacity:0;scale:.3}20%{opacity:.9}100%{opacity:0;scale:2.1}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .actorStand{animation:actorMaterialize 1s ease-out both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .standArt{animation:artUnseal .72s .12s cubic-bezier(.3,.7,.2,1) both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .messageWindow{animation:panelUnseal .7s .27s cubic-bezier(.2,.8,.2,1) both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .standName{animation:nameSnap .35s .78s ease-out both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .standBackdrop:after{content:'';position:absolute;inset:-15% -50%;background:linear-gradient(100deg,transparent 38%,#e8fff29c 47%,#fff6d7 50%,#b2ecd480 53%,transparent 62%);animation:standShine .95s ease-out both}
#boardNotice[data-actor].enter[data-motion=flare] .motionStreak{animation:flareRay .85s .13s ease-out both;transform:rotate(-35deg)}
#boardNotice[data-actor].enter[data-motion=flare] .motionStreak.s2{animation-delay:.23s;transform:rotate(15deg)}
#boardNotice[data-actor].enter[data-motion=flare] .motionStreak.s3{animation-delay:.33s;transform:rotate(-5deg)}
@keyframes actorMaterialize{0%{opacity:0;filter:brightness(1)}20%{opacity:1;filter:brightness(1.45)}100%{opacity:1;filter:brightness(1)}}
@keyframes artUnseal{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@keyframes panelUnseal{from{opacity:0;clip-path:inset(48% 0);scale:.96}to{opacity:1;clip-path:inset(0);scale:1}}
@keyframes standShine{0%{translate:100% 0;opacity:0}25%{opacity:1}100%{translate:-100% 0;opacity:0}}
@keyframes flareRay{0%{opacity:0;scale:.1 1}25%{opacity:.85}100%{opacity:0;scale:1.1 1}}
/* Revision 12: a brief anticipation, held character pose, then the effect lands. */
#boardNotice[data-actor][data-owner=g]{--stand-overlap:40px;--cutin-run:260px}
#boardNotice[data-actor][data-owner=g] .actorStand{right:var(--stand-overlap)}
#boardNotice[data-actor][data-owner=g][data-side=left]{--cutin-run:-260px}
#boardNotice[data-actor][data-owner=g][data-side=left] .actorStand{left:var(--stand-overlap);right:auto}
#boardNotice[data-actor] .cutinStage{position:absolute;inset:-60px -5px;z-index:0;pointer-events:none;overflow:hidden;mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 210px),rgba(0,0,0,.65) calc(100% - 135px),rgba(0,0,0,.15) calc(100% - 65px),transparent calc(100% - 20px));-webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 210px),rgba(0,0,0,.65) calc(100% - 135px),rgba(0,0,0,.15) calc(100% - 65px),transparent calc(100% - 20px))}
#boardNotice[data-actor] .cutinBand{position:absolute;inset:18% -5%;opacity:0;clip-path:polygon(4% 8%,100% 0,96% 92%,0 100%);border-block:2px solid #e6cd85;background:repeating-linear-gradient(-12deg,transparent 0 20px,#aefff01c 21px 22px,transparent 23px 42px),linear-gradient(100deg,#0a1d24e8,#145d60ed 70%,#dceac977)}
#boardNotice[data-actor] .crestStage{position:absolute;inset:-60px -5px;z-index:1;pointer-events:none;overflow:visible}
#boardNotice[data-actor] .cutinCrest{position:absolute;right:85px;top:12%;width:270px;height:270px;background:url('/assets/element-wind.svg') center/auto 82% no-repeat;border:1px solid #ecd392;border-radius:50%;outline:1px solid #b6e9d744;outline-offset:14px;opacity:0}
#boardNotice[data-actor][data-side=left] .cutinStage{scale:-1 1}
#boardNotice[data-actor][data-side=left] .crestStage{scale:-1 1}
#boardNotice[data-actor].enter .cutinBand{animation:cutinBandIn 1.1s ease-out both}
#boardNotice[data-actor].enter .cutinCrest{animation:cutinCrestIn 1.2s ease-out both}
@keyframes cutinBandIn{0%{opacity:0;clip-path:polygon(100% 8%,100% 0,100% 92%,100% 100%)}14%{opacity:1}32%,62%{opacity:1;clip-path:polygon(4% 8%,100% 0,96% 92%,0 100%)}100%{opacity:0;translate:-55px 0}}
@keyframes cutinCrestIn{0%,12%{opacity:0;scale:.7;rotate:-35deg}30%,58%{opacity:.6;scale:1;rotate:0deg}100%{opacity:0;scale:1.18;rotate:15deg}}
#boardActorShade.active{animation:gameFocus 1.45s linear both}
@keyframes gameFocus{0%{opacity:0}12%,49%{opacity:.56}100%{opacity:0}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact] .actorStand{animation:gameImpact 1.25s linear both}
@keyframes gameImpact{0%,9%{opacity:0;translate:var(--cutin-run) 20px;scale:1.28;filter:blur(3px)}26%{opacity:1;translate:-22px -10px;scale:1.12;filter:none;animation-timing-function:ease-out}33%,53%{opacity:1;translate:-22px -10px;scale:1.12;filter:none}66%{translate:3px 0;scale:.99}78%,100%{opacity:1;translate:0 0;scale:1;filter:none}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact] .messageWindow{animation:gamePanel .43s .66s cubic-bezier(.1,.8,.2,1) both}
@keyframes gamePanel{0%{opacity:0;clip-path:inset(0 0 0 100%);translate:20px 0}50%{opacity:1;clip-path:inset(0);translate:-4px 0}75%{translate:2px 0}100%{opacity:1;clip-path:inset(0);translate:0 0}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact] .standName{animation:nameSnap .22s .82s ease-out both}
#boardNotice[data-actor].enter[data-motion=impact] .motionRing{animation:impactRing .55s .68s ease-out both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=slash] .actorStand{animation:gameSlash 1.1s linear both}
@keyframes gameSlash{0%,8%{opacity:0;translate:var(--cutin-run) 80px;rotate:5deg;scale:1.08;filter:blur(2px)}25%{opacity:1;translate:-15px -8px;rotate:0deg;scale:1.08;filter:none}30%,50%{opacity:1;translate:-15px -8px;rotate:0deg;scale:1.08}68%,100%{opacity:1;translate:0 0;rotate:0deg;scale:1;filter:none}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=slash] .messageWindow{animation-delay:.52s;animation-duration:.35s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=slash] .standName{animation-delay:.7s;animation-duration:.22s}
#boardNotice[data-actor].enter[data-motion=slash] .motionStreak{animation-delay:.5s}
#boardNotice[data-actor].enter[data-motion=slash] .motionStreak.s2{animation-delay:.55s}
#boardNotice[data-actor].enter[data-motion=slash] .motionStreak.s3{animation-delay:.6s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .actorStand{animation:gameFlare 1.3s ease-out both}
@keyframes gameFlare{0%,8%{opacity:0;scale:1.1;filter:brightness(1)}27%,52%{opacity:1;scale:1.06;filter:brightness(1.12)}75%,100%{opacity:1;scale:1;filter:none}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .standArt{animation-duration:.36s;animation-delay:.12s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .messageWindow{animation-delay:.62s;animation-duration:.42s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .standName{animation-delay:.84s;animation-duration:.22s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=flare] .standBackdrop:after{animation-delay:.42s}
#boardNotice[data-actor].enter[data-motion=flare] .motionStreak{animation-delay:.62s}
#boardNotice[data-actor] .cutinSpark{position:absolute;right:calc(var(--stand-w)/2 + 40px);top:46%;width:5px;height:18px;background:linear-gradient(#fff2b8,#abe9d6);opacity:0;rotate:var(--angle);transform-origin:center center;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
#boardNotice[data-actor].enter .cutinSpark{animation:sparkRelease .65s .68s ease-out both}
@keyframes sparkRelease{0%{opacity:0;transform:translateY(-20px) scale(.5)}12%{opacity:1}100%{opacity:0;transform:translateY(calc(-1 * var(--distance))) scale(.15)}}
#boardNotice[data-actor].enter[data-owner=g] .effectResult{animation:effectResolve .32s 1s ease-out both}
@keyframes effectResolve{0%{opacity:0;translate:0 8px;filter:brightness(1.5)}100%{opacity:1;translate:0 0;filter:none}}
@media(max-width:1100px){#boardNotice[data-actor][data-owner=g]{--stand-overlap:24px}}
/* Revision 14: background establishes the space, then the character cuts across it. */
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .actorStand{animation:none}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .standBackdrop{animation:backdropLead .58s cubic-bezier(.14,.78,.22,1) both;transform-origin:center bottom}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .standArt{animation:characterFollow 1.05s .18s linear both;transform-origin:50% 65%}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .messageWindow{animation-delay:.74s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .standName{animation-delay:.92s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .effectResult{animation-delay:1.08s}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .motionRing,
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .cutinSpark{animation-delay:.76s}
@keyframes backdropLead{0%{opacity:0;translate:0 65px;scale:.78 1}35%{opacity:1}78%,100%{opacity:1;translate:0 0;scale:1 1}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger] .cutinCrest{right:calc(var(--stand-w) + 8px);top:12%;animation:attributeReveal 1.12s ease-out both}
@keyframes attributeReveal{0%,8%{opacity:0;scale:.82;rotate:-18deg}25%,60%{opacity:.85;scale:1;rotate:0deg}100%{opacity:0;scale:1.08;rotate:0deg}}
@keyframes characterFollow{0%{opacity:0;translate:var(--cutin-run) 14px;scale:1.2}22%{opacity:1;translate:-18px -9px;scale:1.09}30%,51%{opacity:1;translate:-18px -9px;scale:1.09}66%{opacity:1;translate:2px 0;scale:.99}80%,100%{opacity:1;translate:0 0;scale:1}}
/* Revision 16: three emblem cues, and a circular burst centred on the portrait. */
#boardNotice[data-actor] .ringLayer{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:visible}
#boardNotice[data-actor] .ringLayer .motionRing{right:var(--stand-overlap);top:calc(50% - var(--stand-w)/2);width:var(--stand-w);height:var(--stand-w);box-sizing:border-box;transform:none;border-radius:50%}
#boardNotice[data-actor][data-side=left] .ringLayer .motionRing{right:auto;left:var(--stand-overlap);transform:none}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger][data-emblem=stamp] .cutinCrest{animation:emblemStamp 1.18s linear both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger][data-emblem=scan] .cutinCrest{animation:emblemScan 1.18s linear both}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger][data-emblem=focus] .cutinCrest{animation:emblemFocus 1.18s ease-out both}
@keyframes emblemStamp{0%,12%{opacity:0;scale:1.38;rotate:0deg}22%{opacity:.95;scale:.96}28%,63%{opacity:.8;scale:1;rotate:0deg}100%{opacity:0;scale:1}}
@keyframes emblemScan{0%,10%{opacity:0;scale:1;rotate:0deg;clip-path:inset(0 0 100% 0)}13%{opacity:.85}52%,65%{opacity:.85;clip-path:inset(0);scale:1;rotate:0deg}100%{opacity:0;clip-path:inset(0);scale:1;rotate:0deg}}
#boardNotice[data-actor].enter[data-owner=g][data-motion=impact][data-layers=stagger][data-emblem=scan] .cutinCrest:after{content:'';position:absolute;left:0;right:0;height:2px;top:0;background:linear-gradient(90deg,transparent,#f8f3c6,#c4fff0,transparent);box-shadow:0 0 14px #d3ffe1;animation:emblemScanLine 1.18s linear both}
@keyframes emblemScanLine{0%,10%{opacity:0;top:0}13%{opacity:1;top:0}52%{opacity:1;top:100%}58%,100%{opacity:0;top:100%}}
@keyframes emblemFocus{0%,8%{opacity:0;scale:1.55;rotate:0deg;filter:blur(8px)}22%{opacity:.38}48%,64%{opacity:.88;scale:1;rotate:0deg;filter:blur(0)}100%{opacity:0;scale:1;filter:blur(0)}}
/* Attribute selection comes from the acting summoner, never the opponent or spell. */
#boardNotice[data-actor] .standBackdrop:before{background-color:var(--actor-color);background-image:var(--actor-bg)}
#boardNotice[data-actor] .cutinCrest{background-image:var(--actor-icon)}
#boardNotice[data-actor] .cutinBand{background:repeating-linear-gradient(-12deg,transparent 0 20px,#ffffff1c 21px 22px,transparent 23px 42px),linear-gradient(100deg,#0a1d24e8,var(--actor-color) 70%,var(--actor-light))}
#boardNotice[data-actor] .cutinSpark{background:linear-gradient(#fff2b8,var(--actor-light))}
#boardNotice[data-actor] .metric{flex-direction:column;gap:5px}
#boardNotice[data-actor] .metricValue{display:flex;align-items:center;justify-content:center;gap:12px}
#boardNotice[data-actor] .metricValue .metricIcon{width:50px;height:50px}
#boardNotice[data-actor] .elementIcon,#boardNotice[data-actor] .elementIcon svg{display:block;width:42px;height:42px}
#boardNotice[data-actor] .returnSummoner,#boardNotice[data-actor] .rewardActor{display:none}
#boardNotice[data-actor] .returnHeading{grid-template-columns:1fr 90px}
#boardNotice[data-actor] .rewardLayout{grid-template-columns:minmax(0,1fr)}
#boardNotice[data-actor][data-flow=reward] .messageWindow{min-height:345px}
#boardNotice[data-actor] .moneyGrid{grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);gap:8px}
#boardNotice[data-actor] .flowAccount{grid-template-columns:minmax(0,1fr);grid-template-rows:90px 46px 50px auto;gap:4px}
#boardNotice[data-actor] .flowAccount>.flowPortrait{width:100%;height:90px;grid-row:1;transform:none}
#boardNotice[data-actor] .accountName{grid-row:2}
#boardNotice[data-actor] .accountName b{font-size:17px}
#boardNotice[data-actor] .flowDelta{grid-row:3;font-size:34px;align-self:center}
#boardNotice[data-actor] .transferTrack{align-self:start;margin-top:141px}
#boardNotice[data-actor] .flowBalance{flex-wrap:wrap;font-size:16px;gap:4px}
#boardNotice[data-actor] .flowBalance>small{flex-basis:100%}
#boardNotice[data-actor] .flowBalance>b{font-size:19px}
#boardNotice[data-actor] .prayerSource img{width:155px;height:185px}
#boardNotice[data-actor] .shortHint{line-height:1.65;overflow-wrap:anywhere}
#boardNotice[data-actor] .spellText{font-size:22px;color:#ead7ac;line-height:1.65}
#boardNotice[data-actor] .returnReward{min-width:0}
#boardNotice[data-actor] .returnReward h3{white-space:nowrap}
#boardNotice[data-actor] .noticeContent{padding-right:36px}
@media(max-width:1100px){
 #boardNotice[data-actor][data-owner=g]{width:calc(100vw - 250px);left:calc(50vw + 113px)}
 #boardNotice[data-actor] .noticeContent{padding-right:28px}
 #boardNotice[data-actor] .accountName b{font-size:14px}
 #boardNotice[data-actor] .flowDelta{font-size:26px}
 #boardNotice[data-actor] .returnReward h3{font-size:14px}
 #boardNotice[data-actor] .goldParts{font-size:11px;padding:4px 0}
 #boardNotice[data-actor] .healPage{gap:2px}
 #boardNotice[data-actor] .healingCount{font-size:11px}
 #boardNotice[data-actor] .returnCastle{width:70px}
 #boardNotice[data-actor] .bonusValue{font-size:30px}
 #boardNotice[data-actor] .flowBalance>span{font-size:12px}
 #boardNotice[data-actor] .flowBalance>b{font-size:16px;min-width:0}
 #boardNotice[data-actor] .prayerSource img{width:110px;height:150px}
 #boardNotice[data-actor] .spellText{font-size:18px}
 #boardNotice[data-actor] .miniPage{gap:8px}
}
#boardNotice[data-actor] .discardTarget{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:12px}
#boardNotice[data-actor] .forgeReward{display:flex;align-items:center;justify-content:center;gap:20px}
#boardNotice[data-actor] .forgeReward .sourceCard{width:138px;height:216px;flex-shrink:0}
#boardNotice[data-actor] .forgeReward .metric{flex-direction:column;gap:0}
@media(max-width:1100px){#boardNotice[data-actor] .forgeReward{gap:12px}#boardNotice[data-actor] .forgeReward .sourceCard{width:108px;height:169px}}
#boardNotice[data-actor] .discardPawn{width:64px;height:76px;object-fit:contain}
#boardNotice[data-actor] .discardTarget b{font-size:clamp(16px,1.8vw,24px);font-weight:500;white-space:nowrap}
/* Everyday messages keep the portrait readable without the turn-start impact. */
#boardNotice[data-actor][data-motion=calm] :is(.cutinStage,.crestStage,.motionFx,.ringLayer){display:none}
#boardNotice[data-actor].enter[data-owner=g][data-motion=calm] .actorStand{animation:actorQuiet .4s ease-out both}
#boardNotice[data-actor][data-motion=calm] :is(.standBackdrop,.standArt,.standName){animation:none}
@keyframes actorQuiet{from{opacity:0;translate:12px 0}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){#boardNotice[data-actor] *,#boardNotice[data-actor] *:after{animation:none!important;transition:none!important}#boardActorShade,#boardNotice[data-actor] .motionFx,#boardNotice[data-actor] .ringLayer,#boardNotice[data-actor] .cutinStage,#boardNotice[data-actor] .crestStage{display:none!important}}
