/* KST V4.3 - site-wide loading and accessible progressive motion */
.kstBootLayer{position:fixed;inset:0;display:grid;place-items:center;padding:20px;z-index:99999;background:#f8fbff;opacity:1;visibility:visible;transition:opacity .30s ease,visibility .30s ease;animation:kstBootFallback .01s linear 2.3s forwards;pointer-events:auto}
html.kstBootDone .kstBootLayer{opacity:0;visibility:hidden;pointer-events:none;animation:none}
.kstBootPanel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;max-width:320px;text-align:center;color:#112e4f;font-family:'IBM Plex Sans Thai','Noto Sans KR',system-ui,Arial,sans-serif}
.kstBootPanel>img{width:min(128px,36vw);height:auto;max-height:88px;object-fit:contain;filter:drop-shadow(0 5px 8px rgba(15,53,92,.08))}
.kstBootPanel strong{letter-spacing:.06em;font-size:20px;line-height:1.25;font-weight:850}
.kstBootPanel strong span{display:block;font-size:10px;letter-spacing:.13em;font-weight:700;color:#607a90;margin-top:7px}
.kstBootPanel p{font-size:13px;font-weight:500;color:#64788e;margin:7px 0 9px;line-height:1.6}
.kstBootProgress{position:relative;width:118px;height:3px;background:#d8e5ef;border-radius:4px;overflow:hidden}
.kstBootProgress i{position:absolute;display:block;width:40%;height:100%;background:#1a628c;border-radius:4px;animation:kstProgress 1s ease-in-out infinite alternate}
@keyframes kstProgress{from{transform:translateX(-110%)}to{transform:translateX(280%)}}
@keyframes kstBootFallback{to{opacity:0;visibility:hidden;pointer-events:none}}
html{scroll-behavior:smooth;scroll-padding-top:95px}
[id]{scroll-margin-top:110px}
html.kstMotionReady .kstReveal{opacity:0;transform:translate3d(0,14px,0);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.72,.25,1);will-change:transform,opacity}
html.kstMotionReady .kstReveal.kstVisible{opacity:1;transform:none;will-change:auto}
html.kstMotionReady main :is(.serviceCard,.switchCard,.lineProfile,.finInfoCard,.kstWalletTile,.trcard,.choice,.trsection,.noticeItem):not(.kstReveal){transition:transform .18s ease,box-shadow .18s ease}
@media(hover:hover) and (pointer:fine){main a.btn:hover,main a.button:hover,main button.choice:hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}html.kstMotionReady .kstReveal,html.kstMotionReady .kstReveal.kstVisible{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}.kstBootProgress i{animation:none!important}.kstBootLayer{transition:none!important;animation:kstBootFallback .01s linear 1s forwards!important}}


/* KST V5.4 — logo blending and premium, quick mobile loading */
.kstBootLayer{
 background:radial-gradient(ellipse 320px 220px at 50% 42%,rgba(255,255,255,.94) 0%,rgba(239,248,255,.96) 58%,transparent 100%),linear-gradient(145deg,#f8fbff 0%,#edf5fd 54%,#f9fcff 100%);
 transition:opacity .25s ease,visibility .25s ease;
 animation:kstBootFallback .01s linear 1.75s forwards
}
.kstBootPanel{position:relative;isolation:auto;gap:11px;max-width:min(380px,95vw);padding:12px 8px 16px}
.kstBootPanel:before{
 content:'';position:absolute;width:min(290px,76vw);height:175px;
 top:calc(50% - 135px);left:50%;transform:translateX(-50%);
 background:radial-gradient(ellipse at center,rgba(171,209,239,.45) 0%,rgba(214,232,248,.19) 46%,transparent 75%);
 filter:blur(19px);border-radius:50%;z-index:-1;pointer-events:none
}
.kstBootPanel>img{
 display:block;width:min(168px,44vw);height:auto;max-height:126px;object-fit:contain;
 mix-blend-mode:multiply;filter:saturate(1.07) contrast(1.04);border:0;
 -webkit-mask-image:radial-gradient(ellipse 110% 112% at 50% 49%,#000 76%,rgba(0,0,0,.93) 91%,transparent 100%);
 mask-image:radial-gradient(ellipse 110% 112% at 50% 49%,#000 76%,rgba(0,0,0,.93) 91%,transparent 100%);
 animation:kstLogoArrive .48s cubic-bezier(.18,.72,.26,1) both
}
.kstBootPanel strong{font-size:0;line-height:1.4;margin-top:2px}
.kstBootPanel strong span{font-size:11px;letter-spacing:.17em;font-weight:800;color:#315c81;margin-top:1px;line-height:1.5}
.kstBootPanel p{margin:5px 0 12px;color:#53718c;font-size:13px}
.kstBootProgress{width:min(160px,42vw);height:3px;background:rgba(52,116,163,.17)}
.kstBootProgress i{background:linear-gradient(90deg,#2f90ae,#0c4879);width:42%}
@keyframes kstLogoArrive{from{opacity:.15;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:520px){
 .kstBootPanel{gap:8px}.kstBootPanel>img{width:min(152px,44vw);max-height:112px}
 .kstBootPanel strong span{font-size:10px}.kstBootProgress{width:138px}
}
@media(prefers-reduced-motion:reduce){
 .kstBootPanel>img{animation:none!important}
 .kstBootLayer{animation:kstBootFallback .01s linear 1.2s forwards!important}
}
