/* PATCH355 / 모바일 앱 설치 + Android 인앱→외부브라우저 + iOS Safari 첫 버튼 안내 */
.mobile-pwa-install-section{display:none}
body.mobile-site .mobile-pwa-install-section{display:block}
.mobile-pwa-install-button{width:100%;min-height:62px;border:1px solid #d9e5fb;border-radius:14px;background:linear-gradient(135deg,#f3f7ff,#eef5ff);display:flex;align-items:center;gap:12px;padding:10px 12px;text-align:left;color:#102a56;cursor:pointer;font:inherit}
.mobile-pwa-install-button:active{transform:translateY(1px);background:#eaf2ff}
.mobile-pwa-install-button:disabled{cursor:default;opacity:.78}
.mobile-pwa-install-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:linear-gradient(135deg,#071b49,#0d2c73);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;line-height:1}
.mobile-pwa-install-copy{display:flex;min-width:0;flex-direction:column;gap:2px}
.mobile-pwa-install-copy b{font-size:15px;line-height:1.35;font-weight:900;color:#102a56}
.mobile-pwa-install-copy small{font-size:12px;line-height:1.35;color:#718096;font-weight:700}
.mobile-pwa-install-button.is-installed .mobile-pwa-install-icon{background:#159a63}

/* Android/기타 수동 안내 */
.pwa-install-guide{position:fixed;inset:0;z-index:120000;display:none;align-items:flex-end;justify-content:center;padding:18px max(16px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.pwa-install-guide.is-open{display:flex}
.pwa-install-guide-backdrop{position:absolute;inset:0;background:rgba(2,8,23,.62);backdrop-filter:blur(2px)}
.pwa-install-guide-card{position:relative;z-index:1;width:min(100%,440px);box-sizing:border-box;border-radius:22px;background:#fff;padding:24px 22px 20px;box-shadow:0 24px 70px rgba(2,8,23,.28);color:#172033}
.pwa-install-guide-close{position:absolute;right:12px;top:10px;width:38px;height:38px;border:0;border-radius:50%;background:#f1f4f8;color:#64748b;font-size:27px;line-height:1;cursor:pointer}
.pwa-install-guide-badge{width:48px;height:48px;border-radius:15px;background:#eaf2ff;color:#0d2c73;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;margin-bottom:14px}
.pwa-install-guide-card h2{margin:0 44px 8px 0!important;font-size:22px!important;line-height:1.3!important;text-align:left!important;color:#102a56!important}
.pwa-install-guide-card p{margin:0 0 15px!important;color:#56647a!important;font-size:14px!important;line-height:1.65!important;text-align:left!important}
.pwa-install-guide-card ol{margin:0 0 18px;padding-left:22px;color:#28364c;font-size:14px;line-height:1.75}
.pwa-install-guide-confirm{width:100%;min-height:48px;border:0;border-radius:13px;background:#0d2c73;color:#fff;font-size:15px;font-weight:900;cursor:pointer}



/* NAVER Android → Chrome 전환 후 설치 계속 UI */
.pwa-chrome-continue{position:fixed;inset:0;z-index:125000;display:none;align-items:flex-end;justify-content:center;padding:18px max(16px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.pwa-chrome-continue.is-open{display:flex}
.pwa-chrome-continue-backdrop{position:absolute;inset:0;background:rgba(2,8,23,.58);backdrop-filter:blur(2px)}
.pwa-chrome-continue-card{position:relative;z-index:1;width:min(100%,430px);box-sizing:border-box;border-radius:24px;background:#fff;padding:24px 20px 18px;text-align:center;box-shadow:0 24px 70px rgba(2,8,23,.3)}
.pwa-chrome-continue-appicon{width:62px;height:62px;border-radius:18px;margin:0 auto 11px;background:linear-gradient(135deg,#071b49,#0d2c73);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 9px 24px rgba(7,27,73,.24)}
.pwa-chrome-continue-appicon img{display:block;width:100%;height:100%;border-radius:18px;object-fit:cover}
.pwa-chrome-continue-kicker{font-size:11px;font-weight:900;color:#0b63e5;margin-bottom:5px}
.pwa-chrome-continue-card h2{margin:0 0 7px!important;font-size:22px!important;line-height:1.3!important;color:#102a56!important;text-align:center!important}
.pwa-chrome-continue-card p{margin:0 0 16px!important;font-size:13px!important;line-height:1.55!important;color:#66758a!important;text-align:center!important}
.pwa-chrome-continue-install{width:100%;min-height:50px;border:0;border-radius:14px;background:#0d2c73;color:#fff;font-size:15px;font-weight:900;cursor:pointer}
.pwa-chrome-continue-install:disabled{background:#cbd5e1;color:#64748b;cursor:wait}
.pwa-chrome-continue-cancel{width:100%;min-height:40px;margin-top:7px;border:0;background:transparent;color:#7c899a;font-size:13px;font-weight:800;cursor:pointer}
html.pwa-chrome-continue-open,html.pwa-chrome-continue-open body{overflow:hidden!important}

/* iOS Safari: 웹페이지 영역에서 Safari 실제 버튼 방향을 맞추는 코치 */
.pwa-ios-coach{--pwa-ios-target-right:18px;position:fixed;inset:0;z-index:130000;display:none;pointer-events:none;color:#14213d}
.pwa-ios-coach.is-open{display:block}
.pwa-ios-coach-dim{position:absolute;inset:0;background:rgba(5,12,28,.58);backdrop-filter:blur(2px);pointer-events:auto}
.pwa-ios-coach-close{position:absolute;right:max(14px,env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));z-index:6;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.97);color:#4b5d78;font-size:27px;line-height:1;box-shadow:0 8px 26px rgba(0,0,0,.18);pointer-events:auto;cursor:pointer}
.pwa-ios-coach-card{position:absolute;z-index:3;left:50%;top:calc(5% + env(safe-area-inset-top));transform:translateX(-50%);width:min(calc(100% - 28px),460px);max-height:calc(100% - 122px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto;box-sizing:border-box;padding:18px 17px 16px;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(2,8,23,.32);pointer-events:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.pwa-ios-coach-kicker{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:#edf4ff;color:#0d5bd7;font-size:11px;font-weight:900;letter-spacing:-.02em;margin-bottom:8px}
.pwa-ios-coach-card h2{margin:0 38px 5px 0!important;font-size:21px!important;line-height:1.3!important;color:#102a56!important;text-align:left!important;letter-spacing:-.035em}
.pwa-ios-coach-card h2 b{color:#0b63e5}
.pwa-ios-coach-lead{margin:0 0 12px!important;font-size:12px!important;line-height:1.55!important;color:#64748b!important;text-align:left!important}

.pwa-ios-sequence{display:grid;grid-template-columns:minmax(0,.8fr) auto minmax(0,.9fr) auto minmax(0,1.45fr);align-items:center;gap:5px}
.pwa-ios-sequence-step{min-height:56px;padding:7px 5px;border-radius:13px;background:#f5f7fb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}
.pwa-ios-sequence-step span{width:21px;height:21px;border-radius:50%;background:#dfe7f3;color:#52657f;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900}
.pwa-ios-sequence-step b{font-size:11px;line-height:1.2;color:#46556d;word-break:keep-all}
.pwa-ios-sequence-step small{font-size:9px;line-height:1.2;color:#8b98aa;word-break:keep-all}
.pwa-ios-sequence-step.is-primary{background:#eaf3ff;box-shadow:inset 0 0 0 1px #c9dfff}
.pwa-ios-sequence-step.is-primary span{background:#0b63e5;color:#fff}
.pwa-ios-sequence-step.is-primary b{color:#0b56c5;font-size:15px}
.pwa-ios-sequence>i{font-style:normal;color:#94a3b8;font-size:18px;font-weight:900}

.pwa-ios-native-preview{margin-top:12px;border:1px solid #e2e9f3;border-radius:15px;background:#f8fafc;padding:10px}
.pwa-ios-preview-caption{font-size:10px;font-weight:900;color:#5d6e86;margin:0 0 8px 2px}
.pwa-ios-preview-stack{display:grid;grid-template-columns:.78fr 1.22fr;gap:8px;align-items:stretch}
.pwa-ios-preview-more-menu{border:1px solid #dde4ed;border-radius:12px;background:rgba(255,255,255,.98);padding:5px;box-shadow:0 6px 15px rgba(15,23,42,.08)}
.pwa-ios-preview-menu-row{min-height:34px;border-radius:8px;display:grid;grid-template-columns:24px 1fr;align-items:center;gap:3px;padding:0 7px;color:#4f5e72;font-size:10px;position:relative}
.pwa-ios-preview-menu-row span{font-size:14px;text-align:center}
.pwa-ios-preview-menu-row b{font-size:10px}
.pwa-ios-preview-menu-row.is-share{background:#eaf3ff;color:#0b56c5;box-shadow:inset 0 0 0 1px #bed8ff;animation:pwaShareRowPulse 1.3s ease-in-out infinite}
.pwa-ios-preview-menu-row.is-share em{position:absolute;right:5px;top:4px;font-style:normal;font-size:7px;font-weight:900;color:#0b63e5;background:#fff;border-radius:999px;padding:2px 4px}

.pwa-ios-preview-share-sheet{position:relative;overflow:hidden;min-height:118px;border:1px solid #dde4ed;border-radius:14px;background:#fff;box-shadow:0 6px 15px rgba(15,23,42,.08)}
.pwa-ios-preview-grabber{position:absolute;z-index:3;left:50%;top:5px;transform:translateX(-50%);width:31px;height:4px;border-radius:999px;background:#d5dbe5}
.pwa-ios-preview-scroll-copy{position:absolute;left:6px;right:6px;top:17px;animation:pwaMockSheetScroll 5.8s cubic-bezier(.45,.05,.2,1) infinite}
.pwa-ios-preview-option{min-height:30px;display:flex;align-items:center;padding:0 8px;border-bottom:1px solid #edf1f5;font-size:9px;color:#55657a;background:#fff}
.pwa-ios-preview-option.is-home{position:relative;border:1px solid #b9d8ff;border-radius:8px;background:#eaf3ff;color:#0b56c5;font-weight:900;margin-top:4px;animation:pwaHomeRowGlow 5.8s ease-in-out infinite}
.pwa-ios-preview-option.is-home span{font-size:14px;margin-right:6px}
.pwa-ios-preview-option.is-home em{margin-left:auto;font-style:normal;font-size:7px;background:#fff;border-radius:999px;padding:2px 4px}
.pwa-ios-preview-swipe{position:absolute;right:5px;bottom:6px;z-index:4;display:flex;align-items:center;gap:4px;background:rgba(7,27,73,.92);color:#fff;border-radius:999px;padding:4px 6px 4px 5px;font-size:7px;font-weight:900;animation:pwaSwipeHintFade 5.8s ease-in-out infinite}
.pwa-ios-preview-swipe span{width:12px;height:18px;border:2px solid #fff;border-radius:8px;display:block;position:relative}
.pwa-ios-preview-swipe span:after{content:"";position:absolute;left:50%;top:9px;width:2px;height:7px;border-radius:999px;background:#fff;transform:translateX(-50%);animation:pwaFingerSwipe 1.15s ease-in-out infinite}

.pwa-ios-layout-note{margin:10px 1px 0!important;font-size:10px!important;line-height:1.45!important;color:#7b8798!important;text-align:left!important}
.pwa-ios-layout-note b{color:#3b5f94}

/* Safari 브라우저 UI 자체는 페이지 DOM 바깥이므로, 페이지 가장자리에서 실제 버튼 방향으로 표적을 맞춘다. */
.pwa-ios-edge-target{position:absolute;z-index:5;right:calc(var(--pwa-ios-target-right) + env(safe-area-inset-right));bottom:calc(2px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:2px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.25));animation:pwaEdgeFloat 1s ease-in-out infinite;pointer-events:none}
.pwa-ios-edge-label{padding:6px 9px;border-radius:999px;background:#fff;color:#19365f;font-size:11px;font-weight:800;white-space:nowrap}
.pwa-ios-edge-label b{color:#0b63e5;font-size:13px}
.pwa-ios-edge-arrow{font-size:26px;line-height:.8;color:#fff;font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.3);margin-right:7px}
.pwa-ios-edge-ring{width:48px;height:38px;border-radius:17px 17px 5px 17px;background:#fff;color:#0b63e5;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.24);border:3px solid #3b82f6;font-size:20px;font-weight:1000;letter-spacing:1px}

/* iPad Safari 공유 버튼은 상단 우측 */
.pwa-ios-coach.is-ipad .pwa-ios-coach-card{top:calc(7% + env(safe-area-inset-top));max-height:calc(100% - 80px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
.pwa-ios-coach.is-ipad .pwa-ios-sequence-step.is-primary b{font-size:11px}
.pwa-ios-coach.is-ipad .pwa-ios-edge-target{right:calc(82px + env(safe-area-inset-right));top:calc(1px + env(safe-area-inset-top));bottom:auto;flex-direction:column-reverse;align-items:center}
.pwa-ios-coach.is-ipad .pwa-ios-edge-arrow{transform:rotate(180deg);margin-right:0}
.pwa-ios-coach.is-ipad .pwa-ios-edge-ring{width:43px;height:43px;border-radius:50%;font-size:0;position:relative}
.pwa-ios-coach.is-ipad .pwa-ios-edge-ring:before{content:"↑";font-size:23px;line-height:1;color:#0b63e5}

/* 화면 크기 프로필별 미세 위치 보정 */
.pwa-ios-coach[data-device-profile="iphone-mini"] .pwa-ios-coach-card{width:calc(100% - 20px);padding:15px 14px 13px}
.pwa-ios-coach[data-device-profile="iphone-mini"] .pwa-ios-native-preview{padding:8px}
.pwa-ios-coach[data-device-profile="iphone-small"] .pwa-ios-coach-card{width:calc(100% - 22px)}
.pwa-ios-coach[data-device-profile="iphone-430"] .pwa-ios-coach-card,
.pwa-ios-coach[data-device-profile="iphone-large"] .pwa-ios-coach-card{top:calc(6% + env(safe-area-inset-top))}
.pwa-ios-coach.is-landscape .pwa-ios-coach-card{top:calc(2% + env(safe-area-inset-top));max-height:calc(100% - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:min(calc(100% - 110px),560px)}
.pwa-ios-coach.is-landscape .pwa-ios-native-preview{display:none}
.pwa-ios-coach.is-landscape .pwa-ios-edge-target{bottom:calc(0px + env(safe-area-inset-bottom))}

@keyframes pwaEdgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes pwaShareRowPulse{0%,100%{box-shadow:inset 0 0 0 1px #bed8ff,0 0 0 rgba(59,130,246,0)}50%{box-shadow:inset 0 0 0 1px #86b9ff,0 0 0 4px rgba(59,130,246,.11)}}
@keyframes pwaMockSheetScroll{0%,27%{transform:translateY(0)}45%,82%{transform:translateY(-58px)}100%{transform:translateY(0)}}
@keyframes pwaHomeRowGlow{0%,38%,100%{box-shadow:0 0 0 rgba(59,130,246,0)}54%,82%{box-shadow:0 0 0 4px rgba(59,130,246,.16)}}
@keyframes pwaSwipeHintFade{0%,8%,90%,100%{opacity:.35}18%,58%{opacity:1}}
@keyframes pwaFingerSwipe{0%,100%{transform:translate(-50%,2px);opacity:.55}50%{transform:translate(-50%,-5px);opacity:1}}

html.pwa-guide-open,html.pwa-guide-open body,html.pwa-ios-coach-open,html.pwa-ios-coach-open body{overflow:hidden!important}
@media(min-width:761px){.pwa-install-guide{align-items:center}}
@media(max-height:650px){
  .pwa-ios-coach-card{top:calc(2% + env(safe-area-inset-top));max-height:calc(100% - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:14px}
  .pwa-ios-coach-card h2{font-size:18px!important}
  .pwa-ios-native-preview{margin-top:8px}
  .pwa-ios-sequence-step{min-height:48px}
}
@media(prefers-reduced-motion:reduce){
  .pwa-ios-edge-target,.pwa-ios-preview-menu-row.is-share,.pwa-ios-preview-scroll-copy,.pwa-ios-preview-option.is-home,.pwa-ios-preview-swipe,.pwa-ios-preview-swipe span:after{animation:none!important}
  .pwa-ios-preview-scroll-copy{transform:translateY(-58px)}
}

/* ============================================================
   PATCH354 - iOS Safari staged install coach
   ============================================================ */
.pwa-ios-page-share-launcher{
  position:fixed;z-index:120500;left:max(14px,env(safe-area-inset-left));bottom:calc(92px + env(safe-area-inset-bottom));
  display:none;align-items:center;gap:9px;min-height:50px;padding:7px 12px 7px 8px;border:0;border-radius:17px;
  background:linear-gradient(145deg,#071b49,#0d2c73);color:#fff;box-shadow:0 12px 34px rgba(7,27,73,.3);
  font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent
}
.pwa-ios-page-share-launcher.is-visible{display:flex;animation:pwaIOSLauncherIn .28s ease-out both}
.pwa-ios-page-share-symbol{width:36px;height:36px;border-radius:12px;background:#fff;color:#0d2c73;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:1000;line-height:1;position:relative}
.pwa-ios-page-share-symbol:after{content:"";position:absolute;left:10px;right:10px;bottom:7px;height:9px;border:2px solid #0d2c73;border-top:0;border-radius:0 0 4px 4px}
.pwa-ios-page-share-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.12}
.pwa-ios-page-share-copy b{font-size:13px;font-weight:900}
.pwa-ios-page-share-copy small{font-size:9px;opacity:.78;margin-top:3px}

.pwa-ios-live-status{margin:10px 0 11px;display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border-radius:13px;background:#eef5ff;border:1px solid #cfdef8;color:#234979}
.pwa-ios-live-status span{flex:0 0 25px;width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0b63e5;color:#fff;font-size:11px;font-weight:1000}
.pwa-ios-live-status b{font-size:11px;line-height:1.35;word-break:keep-all}
.pwa-ios-sequence-step.is-done{background:#edf8f1;box-shadow:inset 0 0 0 1px #c9ead4}
.pwa-ios-sequence-step.is-done span{background:#26a269;color:#fff}
.pwa-ios-sequence-step.is-done b{color:#26724f}

.pwa-ios-share-overlay-hint,.pwa-ios-home-overlay-hint{display:none;position:absolute;z-index:5;pointer-events:none}
.pwa-ios-coach[data-stage="browser-button"] .pwa-ios-edge-target{display:flex}
.pwa-ios-coach[data-stage="share-menu"] .pwa-ios-edge-target,
.pwa-ios-coach[data-stage="swipe"] .pwa-ios-edge-target,
.pwa-ios-coach[data-stage="home-add"] .pwa-ios-edge-target{display:none}

.pwa-ios-coach[data-stage="share-menu"] .pwa-ios-share-overlay-hint{display:flex;right:max(12px,env(safe-area-inset-right));bottom:calc(112px + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-end;gap:4px;animation:pwaIOSHintBounce .9s ease-in-out infinite}
.pwa-ios-share-overlay-arrow{font-size:31px;color:#fff;text-shadow:0 3px 12px rgba(0,0,0,.34);transform:rotate(-28deg);margin-right:25px}
.pwa-ios-share-overlay-label{padding:8px 11px;border-radius:13px;background:#fff;color:#183b6b;font-size:12px;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.22);border:2px solid #5ea1ff}
.pwa-ios-share-overlay-label b{color:#0b63e5}

.pwa-ios-coach[data-stage="swipe"] .pwa-ios-home-overlay-hint,
.pwa-ios-coach[data-stage="home-add"] .pwa-ios-home-overlay-hint{display:flex;left:50%;bottom:calc(46px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(88vw,370px);flex-direction:column;align-items:center;gap:5px}
.pwa-ios-home-swipe{display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;background:rgba(7,27,73,.96);color:#fff;font-size:11px;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.26)}
.pwa-ios-home-swipe span{width:25px;height:38px;border:2px solid #fff;border-radius:13px;position:relative;display:block}
.pwa-ios-home-swipe span:after{content:"";position:absolute;left:50%;top:19px;width:4px;height:14px;border-radius:999px;background:#fff;transform:translateX(-50%);animation:pwaIOSNativeSwipe 1.05s ease-in-out infinite}
.pwa-ios-home-arrow{font-size:30px;line-height:.8;color:#fff;text-shadow:0 3px 12px rgba(0,0,0,.35)}
.pwa-ios-home-label{padding:9px 14px;border-radius:14px;background:#fff;color:#173968;font-size:12px;font-weight:900;box-shadow:0 12px 30px rgba(0,0,0,.24);border:2px solid #5ea1ff}
.pwa-ios-home-label b{color:#0b63e5}
.pwa-ios-coach[data-stage="home-add"] .pwa-ios-home-swipe{opacity:.38}
.pwa-ios-coach[data-stage="home-add"] .pwa-ios-home-label{animation:pwaHomeRowGlow 1.25s ease-in-out infinite}

.pwa-ios-coach[data-device-profile="iphone-mini"] .pwa-ios-share-overlay-hint{bottom:calc(94px + env(safe-area-inset-bottom))}
.pwa-ios-coach[data-device-profile="iphone-small"] .pwa-ios-share-overlay-hint{bottom:calc(100px + env(safe-area-inset-bottom))}
.pwa-ios-coach[data-device-profile="iphone-430"] .pwa-ios-share-overlay-hint,
.pwa-ios-coach[data-device-profile="iphone-large"] .pwa-ios-share-overlay-hint{bottom:calc(120px + env(safe-area-inset-bottom))}
.pwa-ios-coach.is-ipad[data-stage="share-menu"] .pwa-ios-share-overlay-hint{top:calc(58px + env(safe-area-inset-top));right:calc(66px + env(safe-area-inset-right));bottom:auto}
.pwa-ios-coach.is-ipad .pwa-ios-share-overlay-arrow{transform:rotate(155deg);margin-right:0}
.pwa-ios-coach.is-ipad[data-stage="swipe"] .pwa-ios-home-overlay-hint,
.pwa-ios-coach.is-ipad[data-stage="home-add"] .pwa-ios-home-overlay-hint{bottom:calc(80px + env(safe-area-inset-bottom))}

@keyframes pwaIOSLauncherIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@keyframes pwaIOSHintBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes pwaIOSNativeSwipe{0%,100%{transform:translate(-50%,4px);opacity:.55}50%{transform:translate(-50%,-10px);opacity:1}}

@media(max-height:650px){
  .pwa-ios-page-share-launcher{bottom:calc(76px + env(safe-area-inset-bottom))}
  .pwa-ios-coach[data-stage="share-menu"] .pwa-ios-share-overlay-hint{bottom:calc(84px + env(safe-area-inset-bottom))}
  .pwa-ios-coach[data-stage="swipe"] .pwa-ios-home-overlay-hint,.pwa-ios-coach[data-stage="home-add"] .pwa-ios-home-overlay-hint{bottom:calc(18px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
  .pwa-ios-page-share-launcher,.pwa-ios-share-overlay-hint,.pwa-ios-home-swipe span:after{animation:none!important}
}

/* ============================================================
   PATCH355 - 햄버거 전용 설치 / Safari 첫 버튼만 안내
   ============================================================ */
/* 페이지 본문/메인에는 별도의 앱설치 플로팅 버튼을 노출하지 않는다. */
.pwa-ios-page-share-launcher{display:none!important}

/* Safari 네이티브 공유 메뉴 위로는 웹 오버레이가 올라갈 수 없으므로
   공유 이후 가짜 스크롤/손가락/홈화면추가 강조 모션을 모두 제거한다. */
.pwa-ios-native-preview,
.pwa-ios-sequence,
.pwa-ios-share-overlay-hint,
.pwa-ios-home-overlay-hint{display:none!important}

.pwa-ios-simple-steps{margin:11px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.pwa-ios-simple-steps li{position:relative;margin:0;padding:10px 11px 10px 38px;border-radius:12px;background:#f7f9fc;color:#4b5b72;font-size:12px;line-height:1.45;font-weight:700}
.pwa-ios-simple-steps li:before{position:absolute;left:10px;top:9px;width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e2ebf8;color:#315985;font-size:10px;font-weight:1000}
.pwa-ios-simple-steps li:nth-child(1):before{content:"1";background:#0b63e5;color:#fff}
.pwa-ios-simple-steps li:nth-child(2):before{content:"2"}
.pwa-ios-simple-steps li:nth-child(3):before{content:"3"}
.pwa-ios-simple-steps b{color:#173f78}

/* 실제 위치 안내는 첫 Safari 버튼에만 사용한다. */
.pwa-ios-coach .pwa-ios-edge-target{display:flex!important}
.pwa-ios-coach-card{max-height:calc(100% - 104px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}

/* ============================================================
   PATCH359 - Android visual install coach + iOS motion restore
   ============================================================ */
.pwa-android-coach{position:fixed;inset:0;z-index:130500;display:none;pointer-events:none;color:#14213d}
.pwa-android-coach.is-open{display:block}
.pwa-android-coach-dim{position:absolute;inset:0;background:rgba(5,12,28,.58);backdrop-filter:blur(2px);pointer-events:auto}
.pwa-android-coach-close{position:absolute;right:max(14px,env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));z-index:7;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.97);color:#4b5d78;font-size:27px;line-height:1;box-shadow:0 8px 26px rgba(0,0,0,.18);pointer-events:auto;cursor:pointer}
.pwa-android-coach-card{position:absolute;z-index:3;left:50%;top:calc(7% + env(safe-area-inset-top));transform:translateX(-50%);width:min(calc(100% - 28px),460px);box-sizing:border-box;padding:18px 17px 16px;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(2,8,23,.32);pointer-events:auto}
.pwa-android-coach-kicker{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:#edf4ff;color:#0d5bd7;font-size:11px;font-weight:900;margin-bottom:8px}
.pwa-android-coach-card h2{margin:0 38px 5px 0!important;font-size:21px!important;line-height:1.3!important;color:#102a56!important;text-align:left!important;letter-spacing:-.035em}
.pwa-android-coach-lead{margin:0 0 11px!important;font-size:12px!important;line-height:1.55!important;color:#64748b!important;text-align:left!important}
.pwa-android-motion-strip,.pwa-ios-motion-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.25fr);align-items:center;gap:5px;margin:9px 0 11px}
.pwa-android-motion-step,.pwa-ios-motion-step{min-height:58px;padding:7px 5px;border-radius:13px;background:#f5f7fb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}
.pwa-android-motion-step span,.pwa-ios-motion-step span{width:27px;height:27px;border-radius:50%;background:#dfe7f3;color:#52657f;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:1000}
.pwa-android-motion-step b,.pwa-ios-motion-step b{font-size:10px;line-height:1.2;color:#46556d;word-break:keep-all}
.pwa-android-motion-step.is-primary,.pwa-ios-motion-step.is-primary{background:#eaf3ff;box-shadow:inset 0 0 0 1px #c9dfff}
.pwa-android-motion-step.is-primary span,.pwa-ios-motion-step.is-primary span{background:#0b63e5;color:#fff;animation:pwa359MenuPulse 1.05s ease-in-out infinite}
.pwa-android-motion-step.is-primary b,.pwa-ios-motion-step.is-primary b{color:#0b56c5}
.pwa-android-motion-strip>i,.pwa-ios-motion-strip>i{font-style:normal;color:#94a3b8;font-size:17px;font-weight:900}
.pwa-ios-motion-step.is-share span{animation:pwa359SoftPulse 1.45s ease-in-out infinite .18s}
.pwa-ios-motion-step.is-home span{animation:pwa359SoftPulse 1.45s ease-in-out infinite .36s}
.pwa-android-simple-steps{margin:9px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.pwa-android-simple-steps li{position:relative;margin:0;padding:10px 11px 10px 38px;border-radius:12px;background:#f7f9fc;color:#4b5b72;font-size:12px;line-height:1.45;font-weight:700}
.pwa-android-simple-steps li:before{position:absolute;left:10px;top:9px;width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e2ebf8;color:#315985;font-size:10px;font-weight:1000}
.pwa-android-simple-steps li:nth-child(1):before{content:"1";background:#0b63e5;color:#fff}
.pwa-android-simple-steps li:nth-child(2):before{content:"2"}
.pwa-android-simple-steps li:nth-child(3):before{content:"3"}
.pwa-android-simple-steps b{color:#173f78}
.pwa-android-direct-install{width:100%;min-height:46px;margin-top:10px;border:0;border-radius:13px;background:#0d2c73;color:#fff;font-size:14px;font-weight:900;cursor:pointer;pointer-events:auto}
.pwa-android-direct-install[hidden]{display:none!important}
.pwa-android-edge-target{position:absolute;z-index:6;right:calc(10px + env(safe-area-inset-right));top:calc(3px + env(safe-area-inset-top));display:flex;flex-direction:column;align-items:flex-end;gap:2px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.25));animation:pwa359TargetFloat .88s ease-in-out infinite;pointer-events:none}
.pwa-android-edge-label{padding:6px 9px;border-radius:999px;background:#fff;color:#19365f;font-size:11px;font-weight:800;white-space:nowrap}
.pwa-android-edge-label b{color:#0b63e5;font-size:13px}
.pwa-android-edge-arrow{font-size:27px;line-height:.8;color:#fff;font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.3);margin-right:8px}
.pwa-android-edge-ring{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;color:#0b63e5;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.24);border:3px solid #3b82f6;font-size:22px;font-weight:1000}
.pwa-android-edge-ring:after,.pwa-ios-edge-ring:after{content:"";position:absolute;inset:-7px;border:2px solid rgba(96,165,250,.8);border-radius:inherit;animation:pwa359Ring 1.05s ease-out infinite}
.pwa-android-edge-finger,.pwa-ios-edge-finger{position:absolute;color:#fff;font-size:23px;line-height:1;text-shadow:0 3px 10px rgba(0,0,0,.38);animation:pwa359FingerTap .9s ease-in-out infinite;pointer-events:none}
.pwa-android-edge-finger{right:28px;top:77px}
.pwa-android-coach[data-browser-profile="samsung"] .pwa-android-edge-target{top:auto;bottom:calc(5px + env(safe-area-inset-bottom));right:calc(10px + env(safe-area-inset-right));flex-direction:column-reverse}
.pwa-android-coach[data-browser-profile="samsung"] .pwa-android-edge-arrow{transform:rotate(90deg);margin:0 8px 0 0}
.pwa-android-coach[data-browser-profile="samsung"] .pwa-android-edge-finger{top:auto;bottom:76px;right:29px}
html.pwa-android-coach-open,html.pwa-android-coach-open body{overflow:hidden!important}

/* PATCH359 iOS: 첫 Safari 버튼은 움직이는 화살표/링/탭 모션을 유지한다.
   공유 메뉴 이후 '아래로 내리기' 스와이프 모션은 사용하지 않는다. */
.pwa-ios-motion-strip{display:grid!important}
.pwa-ios-edge-target{animation:pwa359TargetFloat .88s ease-in-out infinite!important}
.pwa-ios-edge-ring{position:relative}
.pwa-ios-edge-finger{right:29px;bottom:-3px}
.pwa-ios-coach.is-ipad .pwa-ios-edge-finger{right:-17px;bottom:auto;top:23px}
.pwa-ios-native-preview,.pwa-ios-preview-swipe,.pwa-ios-home-swipe,.pwa-ios-share-overlay-hint,.pwa-ios-home-overlay-hint{display:none!important}

@keyframes pwa359TargetFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes pwa359Ring{0%{opacity:.9;transform:scale(.78)}100%{opacity:0;transform:scale(1.35)}}
@keyframes pwa359FingerTap{0%,100%{transform:translate(0,0) scale(.92);opacity:.72}48%{transform:translate(-7px,-7px) scale(1.03);opacity:1}}
@keyframes pwa359MenuPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(59,130,246,.05)}50%{transform:scale(1.11);box-shadow:0 0 0 5px rgba(59,130,246,.12)}}
@keyframes pwa359SoftPulse{0%,100%{transform:scale(1);background:#dfe7f3}50%{transform:scale(1.08);background:#cfe1fb}}

@media(max-height:650px){
  .pwa-android-coach-card{top:calc(3% + env(safe-area-inset-top));padding:14px}
  .pwa-android-coach-card h2{font-size:18px!important}
  .pwa-android-motion-step,.pwa-ios-motion-step{min-height:48px}
}
@media(prefers-reduced-motion:reduce){
  .pwa-android-edge-target,.pwa-android-edge-ring:after,.pwa-android-edge-finger,.pwa-android-motion-step.is-primary span,
  .pwa-ios-edge-target,.pwa-ios-edge-ring:after,.pwa-ios-edge-finger,.pwa-ios-motion-step span{animation:none!important}
}
