.card-effects-layer{position:fixed;inset:0;overflow:clip;pointer-events:none;z-index:1100}
.effect-card{position:fixed!important;left:0;top:0;z-index:1100;pointer-events:none;transform-origin:top left;width:136px!important;min-width:136px!important;min-height:0!important;height:auto;padding:6px!important;gap:4px!important;margin:0!important;box-sizing:border-box;box-shadow:0 5px 18px #0008}
.effect-card>b{position:static!important;display:block!important;order:-1!important;width:100%!important;background:none!important;color:#252723!important;text-shadow:none!important;padding:0!important;font:700 17px/1.3 system-ui!important;text-align:center}
.effect-card .card-art{width:122px!important;height:122px!important;aspect-ratio:1!important;flex:none!important;order:0!important}
.effect-card-back{height:160px!important;border:4px solid #d9c697;border-radius:8px;background:repeating-linear-gradient(45deg,#27465e 0 6px,#20394e 6px 12px);display:grid;place-items:center;color:#f5d693}
.effect-card-back span{font-size:40px}
.effect-arrival-pending{visibility:hidden!important}
.effect-notice{position:fixed;transform:translateX(-50%);z-index:1101;padding:6px 12px;border:1px solid #dcc58d;border-radius:8px;background:#fff4d9;color:#302415;box-shadow:0 3px 10px #0005;font:700 17px/1.4 system-ui;white-space:nowrap;pointer-events:none}
.effect-notice[hidden]{display:none}
.effect-trash-pile{box-sizing:border-box;margin-top:9px;padding:8px 10px;border:2px dashed #ae8070;border-radius:8px;background:#392b2c;color:#f8e5d6;text-align:center}
.effect-trash-pile b{font-size:17px}.effect-trash-pile small{display:block;font-size:12px;margin-top:2px}
.effects-busy button:not(#reset):not(#auto){cursor:wait}

.trash-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:3px 12px;margin-top:6px;font-size:14px;line-height:1.5}
.trash-summary:empty{display:none}
.trash-summary span{white-space:nowrap}

/* Ocean swells from the horizon toward the viewer, then breaks into spray. */
.storm-surge{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1102;animation:storm-dim 1.75s both}
.storm-surge-sea{position:absolute;inset:-10%;background:url('storm-20260923.png') center 56%/cover no-repeat;transform-origin:42% 65%;animation:storm-approach 1.75s cubic-bezier(.42,0,.65,1) both;will-change:transform,opacity}
.storm-surge-foam{position:absolute;inset:-30%;background:radial-gradient(ellipse at 45% 80%,#fff 0%,#defaffee 18%,#8bdae799 35%,transparent 65%);animation:storm-break 1.75s both;transform-origin:center bottom}
.storm-surge-drop{position:absolute;left:50%;top:75%;width:var(--size);height:calc(var(--size)*1.8);border-radius:50%;background:radial-gradient(ellipse at 30% 25%,#fff,#bdefffaa 50%,#ffffff00 75%);opacity:0;animation:storm-spray .8s ease-out both}
@keyframes storm-dim{0%,100%{background:transparent}30%,65%{background:#021a3280}}
@keyframes storm-approach{0%{opacity:0;transform:perspective(900px) rotateX(32deg) translateY(-20%) scale(.3)}18%{opacity:.75}55%{opacity:1;transform:perspective(900px) rotateX(0deg) translateY(0) scale(1.05)}78%{opacity:1;transform:scale(1.8) translateY(12%)}100%{opacity:0;transform:scale(2.35) translateY(22%)}}
@keyframes storm-break{0%,40%{opacity:0;transform:translateY(60%) scale(.5)}65%{opacity:.9;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-15%) scale(1.7)}}
@keyframes storm-spray{0%{opacity:0;transform:translate(0,0) scale(.2)}15%{opacity:.9}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(3)}}
@media(prefers-reduced-motion:reduce){.storm-surge{display:none}}

/* Full-screen entrances; all children are removed by the effect queue. */
.hero-impact{position:fixed;inset:0;z-index:1103;overflow:hidden;isolation:isolate;animation:impact-envelope 1.75s both;background:#150e0de8;pointer-events:none}
.impact-art{position:absolute;inset:-8%;background:center 12%/cover no-repeat;animation:impact-approach 1.75s both;will-change:transform}
.nakamura-impact .impact-art{background-image:url('nakamura-20260924.png')}
.pirate-impact .impact-art{background-image:url('pirate-20260922.png');animation:pirate-boast 1.75s both}
.impact-flash{position:absolute;inset:0;background:radial-gradient(ellipse,#fff9cc,transparent 72%);animation:impact-flash 1.75s both}
.impact-ring{position:absolute;left:50%;top:50%;width:55vmin;height:55vmin;border:18px solid #ffe2a6;border-radius:50%;box-shadow:0 0 55px #ffb52b,inset 0 0 45px #fff0b3;animation:impact-ring 1.75s both}
.impact-title{position:absolute;left:2%;right:2%;bottom:14%;text-align:center;font:900 clamp(32px,8vw,150px)/1.25 serif;color:#fff1b9;text-shadow:4px 5px 0 #381307,-3px -3px 0 #381307,0 0 28px #ffab35;animation:impact-title 1.75s both}
.pirate-impact .impact-title{font-size:clamp(28px,7vw,130px);bottom:17%;color:#fff1d8;animation:pirate-laugh 1.75s both}
.pirate-impact .impact-ring{border-color:#a7eeff;box-shadow:0 0 55px #3fbbff}
@keyframes impact-envelope{0%,100%{opacity:0}8%,84%{opacity:1}}
@keyframes impact-approach{0%{transform:scale(.3);filter:brightness(2)}24%{transform:scale(1.08);filter:brightness(1.4)}30%{transform:translate(-1.5%,1%) scale(1.08)}36%{transform:translate(1.5%,-1%) scale(1.08)}42%{transform:translate(-1%,.5%) scale(1.08)}55%{transform:scale(1.08);filter:brightness(1)}100%{transform:scale(1.23)}}
@keyframes impact-flash{0%,19%,48%,100%{opacity:0}24%{opacity:.95}}
@keyframes impact-ring{0%,18%{opacity:0;transform:translate(-50%,-50%) scale(.1)}25%{opacity:1}70%,100%{opacity:0;transform:translate(-50%,-50%) scale(4)}}
@keyframes impact-title{0%,16%{opacity:0;transform:scale(2.5)}29%{opacity:1;transform:scale(.95) rotate(-3deg)}40%,85%{opacity:1;transform:scale(1) rotate(-3deg)}100%{opacity:0;transform:scale(1.15)}}
@keyframes pirate-boast{0%{transform:scale(.4) rotate(-8deg)}22%{transform:scale(1.05) rotate(2deg)}38%,62%{transform:scale(1.09) rotate(-2deg)}50%,76%{transform:scale(1.13) rotate(2deg)}100%{transform:scale(1.18)}}
@keyframes pirate-laugh{0%,15%{opacity:0;transform:scale(.3)}28%,52%,76%{opacity:1;transform:translateY(-12px) rotate(-4deg) scale(1.04)}40%,64%,88%{opacity:1;transform:translateY(8px) rotate(3deg)}100%{opacity:0;transform:scale(1.15)}}
@media(prefers-reduced-motion:reduce){.hero-impact{display:none}}

/* The tower rises from below the sea, then throws a beacon across the screen. */
.alexandria-impact{background:linear-gradient(#06182bf5,#08758ff5);animation-duration:1.75s}
.alexandria-impact .impact-art{inset:0;background-image:url('alexandria-20260924.png');background-size:contain;background-position:center;background-repeat:no-repeat;animation:alexandria-rise 1.75s both;transform-origin:center bottom}
.alexandria-impact:after{content:"";position:absolute;inset:65% -20% -25%;background:radial-gradient(ellipse at 50% 0%,#f2ffffdd 0%,#88eaff99 18%,#08758f 48%,#031a36 80%);border-radius:50% 50% 0 0;animation:alexandria-sea 1.75s both}
.alexandria-impact .impact-title{z-index:2;bottom:9%;font-size:clamp(30px,7vw,115px);animation:alexandria-title 1.75s both}
.alexandria-impact .impact-ring{z-index:1;top:69%;border-color:#bafaff;animation-delay:.3s;animation-duration:1.4s}
.alexandria-impact .impact-flash{z-index:1;animation-delay:.4s;animation-duration:1.35s}
@keyframes alexandria-rise{0%{transform:translateY(105%);filter:brightness(.4)}25%{transform:translateY(65%)}48%{transform:translateY(30%);filter:brightness(.9)}68%,85%{transform:translateY(0);filter:brightness(1.15)}100%{transform:translateY(-2%);filter:brightness(1)}}
@keyframes alexandria-sea{0%{transform:scale(1.2) translateY(-12%)}45%{transform:scale(1.4) translateY(5%)}80%,100%{transform:scale(1.7) translateY(65%);opacity:0}}
@keyframes alexandria-title{0%,40%{opacity:0;transform:translateY(35px)}65%,85%{opacity:1;transform:translateY(0)}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.alexandria-impact{display:none}}
/* 中村正右衛門・大時化の選択ボタンを強く光らせて目立たせる（2026-09-24） */
#nakamura,#storm{position:relative;overflow:hidden;font-size:1.35em;font-weight:900;padding:16px 30px;margin:6px 10px;color:#3a1c00;background:linear-gradient(180deg,#fffbe0,#ffd23c 50%,#ff9800);border:3px solid #fff;border-radius:12px;text-shadow:0 1px 0 #fffa;box-shadow:0 0 18px 6px #ffe066,0 0 50px 18px #ffae00cc;animation:special-choice-pulse .8s ease-in-out infinite alternate}
#storm{color:#fff;background:linear-gradient(180deg,#bff7ff,#22b0ea 50%,#0a5aa0);text-shadow:0 2px 3px #000a;box-shadow:0 0 18px 6px #9ff0ff,0 0 50px 18px #1aa7ffcc;animation-name:special-choice-pulse-sea}
#nakamura::after,#storm::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#ffffffdd,transparent);transform:skewX(-20deg);animation:special-choice-shine 1.6s linear infinite;pointer-events:none}
#nakamura:hover,#storm:hover{filter:brightness(1.2)}
@keyframes special-choice-pulse{from{transform:scale(1);box-shadow:0 0 12px 4px #ffe066,0 0 30px 10px #ffae0099}to{transform:scale(1.12);box-shadow:0 0 26px 10px #fff3a0,0 0 80px 30px #ffae00}}
@keyframes special-choice-pulse-sea{from{transform:scale(1);box-shadow:0 0 12px 4px #9ff0ff,0 0 30px 10px #1aa7ff99}to{transform:scale(1.12);box-shadow:0 0 26px 10px #e0fbff,0 0 80px 30px #1aa7ff}}
@keyframes special-choice-shine{from{left:-60%}to{left:130%}}
@media (prefers-reduced-motion:reduce){#nakamura,#storm,#nakamura::after,#storm::after{animation:none}}
/* 手札のアレクサンドリアは表向きで相手に見せつける（2026-09-24） */
.revealed-alexandria{border:3px solid #ffe066!important;box-shadow:0 0 14px 5px #ffd84d,0 0 34px 12px #ffae0099!important;animation:revealed-alexandria-glow 1.2s ease-in-out infinite alternate}
@keyframes revealed-alexandria-glow{from{box-shadow:0 0 10px 3px #ffd84daa,0 0 22px 8px #ffae0066}to{box-shadow:0 0 20px 8px #fff3a0,0 0 50px 18px #ffae00bb}}
@media (prefers-reduced-motion:reduce){.revealed-alexandria{animation:none}}
.effect-card.alexandria-tower-glow{animation:alexandria-tower-glow .45s ease-in-out infinite alternate}
@keyframes alexandria-tower-glow{from{box-shadow:0 0 10px 3px #ffe066,0 0 26px 8px #ffae0099;filter:brightness(1)}to{box-shadow:0 0 28px 12px #fff3a0,0 0 70px 26px #ffae00;filter:brightness(1.35)}}
