#amamiLateRoot{position:fixed;inset:0;z-index:268;display:block;pointer-events:none;color:#fff;font-family:'Zen Maru Gothic',sans-serif}
#amamiLateRoot.active{display:block}
#ayChapter{position:absolute;left:50%;top:max(68px,10%);transform:translate(-50%,-8px);z-index:7;min-width:min(86%,365px);padding:10px 18px;border-radius:16px;background:rgba(12,46,67,.87);border:2px solid rgba(255,255,255,.86);box-shadow:0 6px 18px rgba(0,0,0,.28);text-align:center;opacity:0;transition:opacity .35s ease,transform .35s ease}
#ayChapter.show{opacity:1;transform:translate(-50%,0)}
#ayChapter small{display:block;color:#a8efff;font-weight:900;font-size:.78rem;letter-spacing:.08em}
#ayChapter b{display:block;margin-top:2px;font-size:clamp(1.1rem,5vw,1.5rem);font-weight:900;white-space:nowrap}
#ayProgress{position:absolute;left:50%;top:max(54px,7%);transform:translateX(-50%);z-index:7;display:none;padding:6px 14px;border-radius:999px;background:rgba(10,56,78,.86);border:2px solid rgba(255,255,255,.82);box-shadow:0 4px 12px rgba(0,0,0,.24);font-weight:900;font-size:.9rem;white-space:nowrap}
#ayProgress.show{display:block;animation:ayPop .24s ease-out}
@keyframes ayPop{from{opacity:0;transform:translate(-50%,-7px)}to{opacity:1;transform:translate(-50%,0)}}
#ayTalk{position:absolute;left:3%;bottom:max(18px,3.5%);width:94%;z-index:9;display:none;align-items:center;gap:11px;padding:10px 18px 24px 10px;border-radius:18px;background:rgba(0,0,0,.84);border:3px solid rgba(255,255,255,.9);box-shadow:0 5px 18px rgba(0,0,0,.35);pointer-events:auto;cursor:pointer}
#ayTalk.show{display:flex;animation:ayTalkIn .2s ease-out both}
@keyframes ayTalkIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
#ayTalk img{width:clamp(72px,22vw,112px);aspect-ratio:1;flex:0 0 auto;object-fit:cover;object-position:center top;border-radius:14px;border:2px solid rgba(255,255,255,.8);background:#fff}
#ayTalk>div{min-width:0;text-align:left}
#ayTalk>div>b{display:block;color:#ffea66;font-size:clamp(.82rem,3.4vw,1rem);font-weight:900;margin-bottom:3px}
#ayText{font-size:clamp(1rem,4.4vw,1.2rem);font-weight:900;line-height:1.48;overflow-wrap:anywhere}
#ayNext{position:absolute;right:12px;bottom:4px;font-size:.78rem;opacity:.28;transition:opacity .15s}
#ayNext.ready{opacity:.9;animation:ayNext 1s ease-in-out infinite}
@keyframes ayNext{50%{transform:translateY(3px)}}
#ayWave{position:absolute;left:10%;right:10%;bottom:26%;height:68px;z-index:6;display:none;pointer-events:none;overflow:hidden}
#ayWave.show{display:block}
#ayWave i{position:absolute;left:50%;bottom:-38px;width:90px;height:70px;border:3px solid rgba(216,250,255,.75);border-radius:50%;transform:translateX(-50%) scale(.25);opacity:0;animation:ayWave 1.35s ease-out both}
#ayWave i:nth-child(2){animation-delay:.22s}#ayWave i:nth-child(3){animation-delay:.44s}
@keyframes ayWave{15%{opacity:.85}to{opacity:0;transform:translateX(-50%) scale(3.3)}}
.ay-field-enemy{position:absolute;left:calc(var(--ay-x)*var(--tile));top:calc(var(--ay-y)*var(--tile));width:calc(1.45*var(--tile));height:calc(1.45*var(--tile));transform:translate(-22%,-28%);z-index:32;display:flex;align-items:center;justify-content:center;pointer-events:none;filter:drop-shadow(0 5px 5px rgba(0,0,0,.3));animation:ayEnemyFloat 1.8s ease-in-out infinite}
.ay-field-enemy .ay-word{font-size:clamp(27px,9vw,46px);font-weight:900;letter-spacing:-.06em;color:#172554;-webkit-text-stroke:2px #fff;text-shadow:0 3px 0 #67e8f9,0 5px 8px rgba(0,0,0,.25)}
.ay-field-enemy .ay-face{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);font-size:.78rem;color:#172554;letter-spacing:.05em}
.ay-field-enemy.arrive{animation:ayEnemyArrive .5s ease-out both,ayEnemyFloat 1.8s .5s ease-in-out infinite}
@keyframes ayEnemyArrive{from{opacity:0;transform:translate(-22%,-60%) scale(.55)}to{opacity:1;transform:translate(-22%,-28%) scale(1)}}
@keyframes ayEnemyFloat{50%{margin-top:-6px}}
body.amami-late-mode #fieldControls,body.amami-late-mode #fieldModeBadge,body.amami-late-mode #fieldZoneName{pointer-events:none}
body.amami-late-mode .field-h .btn,body.amami-late-mode .field-h .map-btn{visibility:hidden}

#screen-battle.amami-late-battle .battle-coins{display:none}
#screen-battle.amami-late-battle .enemy-info .tbadge{background:#e6fbff;color:#07526b;border:2px solid #67d6ea}
@media (min-width:481px){#amamiLateRoot{left:50%;right:auto;width:480px;transform:translateX(-50%)}}
@media (max-height:620px){#ayTalk{bottom:8px;padding-top:7px;padding-bottom:21px}#ayTalk img{width:68px}#ayText{font-size:.96rem;line-height:1.42}#ayChapter{top:52px}}
@media (prefers-reduced-motion:reduce){#ayNext.ready,.ay-field-enemy,.ay-field-enemy.arrive,#ayWave i{animation:none}}

body.amami-late-mode .dpad,body.amami-late-mode .dpad button{visibility:hidden!important;pointer-events:none!important}
body.amami-late-mode .field-object{visibility:hidden}
.ay-field-enemy .ay-word{white-space:nowrap}
#amamiLateRoot #ayHush{top:27%}


.ay-field-word{position:absolute;left:calc(var(--ax)*var(--tile));top:calc(var(--ay)*var(--tile));transform:translate(-50%,-50%);transition:left .6s ease;font-size:clamp(25px,8vw,40px);font-weight:900;white-space:nowrap;color:#172554;-webkit-text-stroke:1.3px #fff;text-shadow:0 3px 0 #67e8f9;z-index:32;animation:ayWord .4s both}@keyframes ayWord{from{opacity:0;translate:0 -14px}to{opacity:1;translate:0 0}}
#ayProgress{display:block}#ayProgress:empty{display:none}.amami-late-battle .ay-half-done{opacity:.28}.amami-late-battle .battle-coins{display:none}
#ayWater{position:absolute;left:12%;top:53%;width:76%;height:60px;display:none;pointer-events:none}#ayWater.show{display:block}#ayWater i{position:absolute;left:10%;width:35%;height:30px;border:2px solid #c2f5ff99;border-radius:50%;animation:ayRipple 1.2s ease-out both}#ayWater i+i{left:55%;animation-delay:.15s}@keyframes ayRipple{from{scale:.3;opacity:0}40%{opacity:1}to{scale:1.4;opacity:0}}
#ayGlow{position:absolute;left:25%;top:20%;width:50%;height:26%;background:radial-gradient(ellipse,#fff4b950,transparent 70%);opacity:0;transition:opacity 1.5s}#ayGlow.show{opacity:1}
@media(prefers-reduced-motion:reduce){.ay-field-word,#ayWater i{animation-duration:.01ms}}
.ay-word-complete{letter-spacing:.05em;padding:6px 12px;border-radius:12px;background:#fff6dbea;border:2px solid #fff}
.ay-delayed-word{animation:ayWord .5s both}
#ayWater.answer-wave{top:44%;height:90px}
#ayWater.answer-wave i{width:60%;height:55px;left:20%}
#ayCastleLight{position:absolute;left:calc(var(--castle-x)*var(--tile));top:calc(var(--castle-y)*var(--tile));width:calc(7*var(--tile));height:calc(4.67*var(--tile));transform:translateX(-50%);background:url('../images/fullart/amami-main-08-toy-castle.webp') center top/100% 100%;mask-image:linear-gradient(#000 80%,transparent);opacity:0;transition:opacity .9s;pointer-events:none;z-index:7}
#fieldGrid:has(>#ayCastleLight)>#fieldHero{z-index:100}
#fieldGrid:has(>#ayCastleLight)>.amami-easy{z-index:101}
#ayCastleLight.show{opacity:1}
#ayBattleGear{position:absolute;left:5%;top:8%;font-size:40px;color:#c99b48a0;pointer-events:none;animation:ayGear 35s linear infinite}
/* 第5話の会話のみ。体格は奄美入口.cssの共通測定に合わせる。 */
#amamiLateRoot:is([data-episode="5"],[data-episode="6"],[data-episode="7"],[data-episode="8"]).cinematic{display:flex;flex-direction:column;background:#123e37;pointer-events:auto;isolation:isolate;padding-bottom:env(safe-area-inset-bottom,0px)}
.ay-cinema{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding-top:64px}
.ay-cinema-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 54%}
.ay-cut-location{position:absolute;top:22px;left:16px;right:138px;z-index:3;font-size:12px;letter-spacing:.02em;color:#fff;text-shadow:0 2px 5px #123;font-weight:900}
.ay-cut-close{position:absolute;top:12px;right:66px;z-index:8;min-width:64px;min-height:44px;border:1px solid #ffffff70;border-radius:22px;background:#173e59d9;color:#fff;font:inherit;font-size:12px;cursor:pointer}
.ay-cinema-stage{position:relative;flex:1;min-height:0;overflow:hidden}
#amamiLateRoot .ay-close-easy,.ay-shoulder{position:absolute;filter:drop-shadow(0 6px 4px #1234)}
.ay-word-pair{position:relative;flex:none;z-index:3;display:flex;justify-content:center;gap:20px;margin:0 12px 10px;transition:gap .5s}
.ay-word-pair span{display:block;padding:5px 14px;background:#fff5dc;color:#283e31;border:2px solid #cdaa64;border-radius:10px;font-weight:900;font-size:clamp(22px,6vw,28px);letter-spacing:.12em;box-shadow:0 2px 5px #1235;white-space:nowrap}
.ay-word-pair.assembled{gap:0}.ay-word-pair.assembled span:first-child{border-right:0;border-radius:10px 0 0 10px;padding-right:0}.ay-word-pair.assembled span:last-child{border-left:0;border-radius:0 10px 10px 0;padding-left:0}
#amamiLateRoot.cinematic #ayTalk{position:relative;left:auto;bottom:auto;flex:none;width:calc(100% - 24px);margin:0 12px 12px;padding:16px 18px 30px;background:#123e37;border:1px solid #b6d9be;border-radius:14px;min-height:calc(3 * clamp(16px,4.4vw,20px) * 1.65 + 80px)}
#amamiLateRoot.cinematic #ayTalk.show{display:block}
#amamiLateRoot.cinematic #ayTalk>img{display:none}
#amamiLateRoot.cinematic #ayText{font-size:clamp(16px,4.4vw,20px);line-height:1.65;margin:0}
#amamiLateRoot.cinematic #ayTalk b{color:#ffdc83;margin-bottom:7px}
#amamiLateRoot.cinematic #ayChapter{top:76px;pointer-events:none}
@media(max-height:500px){.ay-cinema{padding-top:42px}.ay-cut-location{top:15px;font-size:11px}.ay-cut-close{top:3px;min-height:36px}.ay-word-pair{margin-bottom:4px}.ay-word-pair span{padding:2px 12px;font-size:18px}#amamiLateRoot.cinematic #ayTalk{min-height:112px;padding:8px 14px 23px;margin-bottom:6px}#amamiLateRoot.cinematic #ayTalk b{margin-bottom:2px;font-size:12px}#amamiLateRoot.cinematic #ayText{font-size:14px;line-height:1.4}#amamiLateRoot.cinematic #ayChapter{top:48px;padding:4px 12px}}
@media(prefers-reduced-motion:reduce){.ay-word-pair{transition:none}}
/* 第6話：波紋は言葉の行に収め、人物の足元とは重ねない。 */
#amamiLateRoot[data-episode="6"].cinematic,#amamiLateRoot[data-episode="6"].cinematic #ayTalk{background:#163e55}
.ay-sea-word{position:relative;flex:none;display:flex;justify-content:center;align-items:flex-start;min-height:68px;margin:0 12px 8px;overflow:hidden}
.ay-sea-word span{position:relative;z-index:1;padding:5px 14px;background:#fff5dc;color:#283e31;border:2px solid #cdaa64;border-radius:10px;font-weight:900;font-size:clamp(22px,6vw,28px);letter-spacing:.12em;white-space:nowrap}
.ay-sea-word i{position:absolute;bottom:1px;left:20%;width:60%;height:22px;border:3px solid #effcff;border-radius:50%;background:#8cdfff55;animation:ayRipple 1.6s ease-out both}
@media(max-height:500px){.ay-sea-word{min-height:42px;margin-bottom:4px}.ay-sea-word span{font-size:18px;padding:2px 12px}.ay-sea-word i{height:13px}}
@media(prefers-reduced-motion:reduce){.ay-sea-word i{animation:none}}
/* 第6話の背中越しの会話：設定身長とカメラからの距離を分ける。 */
#amamiLateRoot[data-episode="6"] .amami-dialog-stage{--depth-unit:min(52cqw,50cqh);--peer-height:calc(var(--depth-unit) * 1.25 * 448 / 310);--listener-height:calc(var(--depth-unit) * 1.65 / var(--listener-fill))}
#amamiLateRoot[data-episode="6"] .amami-dialog-stage .amami-dialog-peer{left:64%;bottom:calc(24cqh - var(--peer-height) * 70 / 448);z-index:1}
#amamiLateRoot[data-episode="6"] .amami-dialog-stage .amami-dialog-listener{left:30%;bottom:calc(-12cqh - var(--listener-height) * var(--listener-pad));z-index:2}
/* 第7話も本人指定の背中越し。身長1.25倍と手前の投影1.65倍を分ける。 */
#amamiLateRoot[data-episode="7"] .amami-dialog-stage{--depth-unit:min(52cqw,50cqh);--peer-height:calc(var(--depth-unit) * 1.25 * 448 / 310);--listener-height:calc(var(--depth-unit) * 1.65 / var(--listener-fill))}
#amamiLateRoot[data-episode="7"] .amami-dialog-stage .amami-dialog-peer{left:64%;bottom:calc(24cqh - var(--peer-height) * 70 / 448);z-index:1}
#amamiLateRoot[data-episode="7"] .amami-dialog-stage .amami-dialog-listener{left:30%;bottom:calc(-12cqh - var(--listener-height) * var(--listener-pad));z-index:2}
/* 第8話出口：本人指定どおり城を縮めず人物を最前面へ。同距離の身長1:1.25。 */
.ay-vista-stage{position:relative;flex:1;min-height:0;container-type:size;--vista-unit:min(29cqw,30cqh);--vista-hero-height:calc(var(--vista-unit) / var(--vista-hero-fill,1));--vista-easy-height:calc(var(--vista-unit) * 1.25 / var(--vista-easy-fill,1));opacity:0}
.ay-vista.ready .ay-vista-stage{opacity:1}
.ay-vista-castle{position:absolute;left:0;top:-64px;width:100%;height:calc(100% + 64px);object-fit:cover;object-position:center top;z-index:0}
.ay-vista-hero,.ay-vista-easy{z-index:2}
@media(max-height:500px){.ay-vista-castle{top:-42px;height:calc(100% + 42px)}}
.ay-vista-hero{position:absolute;left:31%;bottom:calc(17cqh - var(--vista-hero-height) * var(--vista-hero-pad,0));width:var(--vista-hero-height);height:var(--vista-hero-height);background-size:300% 200%;background-repeat:no-repeat;transform:translateX(-50%) scaleX(var(--vista-step,1));filter:drop-shadow(0 3px 3px #1235)}
.ay-vista-easy{position:absolute;left:67%;bottom:calc(17cqh - var(--vista-easy-height) * var(--vista-easy-pad,0));width:var(--vista-easy-height);height:var(--vista-easy-height);transform:translateX(-50%);filter:drop-shadow(0 3px 3px #1235)}
.ay-vista-easy img{width:100%;height:100%}
.ay-vista-stage.hero-go .ay-vista-hero{transition:bottom 1.4s linear;bottom:calc(28cqh - var(--vista-hero-height) * var(--vista-hero-pad,0))}
.ay-vista-stage.easy-go .ay-vista-easy{transition:bottom 1s linear;bottom:calc(28cqh - var(--vista-easy-height) * var(--vista-easy-pad,0))}
#amamiLateRoot:has(.ay-vista) #ayTalk{display:block;visibility:hidden;min-height:calc(3 * clamp(16px,4.4vw,20px) * 1.65 + 80px)}
#amamiLateRoot:has(.ay-vista) #ayTalk.show{visibility:visible}
@media(max-height:500px){#amamiLateRoot:has(.ay-vista) #ayTalk{min-height:112px}}
@media(prefers-reduced-motion:reduce){.ay-vista-stage.hero-go .ay-vista-hero,.ay-vista-stage.easy-go .ay-vista-easy{transition:none}}
