:root{color-scheme:light;--ink:#102f3c;--paper:rgba(248,251,248,.92);--line:rgba(16,47,60,.16)}
*{box-sizing:border-box}html,body{width:100%;min-height:100%}body{margin:0;overflow:hidden;color:var(--ink);background:linear-gradient(#8fc7d6,#0c526d);font-family:"Pretendard","Noto Sans KR",system-ui,sans-serif}button,input,textarea{font:inherit}button{color:inherit}.skip-link{position:fixed;top:1rem;left:1rem;z-index:100;padding:.7rem 1rem;border-radius:.5rem;background:#fff;transform:translateY(-160%)}.skip-link:focus{transform:none}
.cloud-loader{position:fixed;inset:0;z-index:300;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#f8fdff 0,#dceef3 42%,#aacbd5 100%);isolation:isolate;transition:opacity .42s ease .82s,visibility 0s linear 1.3s}.cloud-loader__glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#fff 0 8%,#ffffffb3 26%,transparent 58%);transition:opacity .5s ease .25s,transform 1.15s ease}.cloud-bank{position:absolute;width:92vmax;height:68vmax;border-radius:50%;background:radial-gradient(ellipse at 22% 48%,#fff 0 15%,transparent 42%),radial-gradient(ellipse at 48% 35%,#f8fdff 0 19%,transparent 47%),radial-gradient(ellipse at 76% 58%,#eaf6f9 0 18%,transparent 46%),radial-gradient(ellipse at 52% 70%,#d9edf2 0 20%,transparent 50%);filter:blur(clamp(14px,2.2vw,34px));opacity:.96;will-change:transform,opacity}.cloud-bank--one{left:-42vmax;top:-24vmax;transform:rotate(8deg)}.cloud-bank--two{right:-43vmax;top:-28vmax;transform:rotate(-12deg) scale(1.04)}.cloud-bank--three{left:-39vmax;bottom:-38vmax;transform:rotate(-7deg) scale(1.12)}.cloud-bank--four{right:-42vmax;bottom:-36vmax;transform:rotate(10deg) scale(1.08)}.cloud-bank--five{left:4vmax;top:3vmax;width:92vmax;height:92vmax;opacity:.68;transform:scale(.9)}.cloud-loader__label{position:relative;z-index:2;margin:0;color:#214d5c;text-align:center;letter-spacing:.42em;font-size:clamp(.72rem,1vw,.88rem);font-weight:800;text-indent:.42em;text-shadow:0 1px #fff;transition:opacity .22s ease,transform .35s ease}.cloud-loader__label i{display:block;width:4.5rem;height:1px;margin:.75rem auto 0;overflow:hidden;background:#6a98a6}.cloud-loader__label i:after{content:"";display:block;width:45%;height:100%;background:#fff;box-shadow:0 0 6px #fff;animation:cloud-loading 1.05s ease-in-out infinite alternate}.cloud-loader.is-clearing{opacity:0;visibility:hidden;pointer-events:none}.cloud-loader.is-clearing .cloud-loader__glow{opacity:0;transform:scale(1.35)}.cloud-loader.is-clearing .cloud-loader__label{opacity:0;transform:translateY(-8px)}.cloud-loader.is-clearing .cloud-bank--one{transform:translate(-48vw,-32vh) rotate(-12deg);opacity:0;transition:transform 1.08s cubic-bezier(.4,0,.8,.3),opacity .76s ease .18s}.cloud-loader.is-clearing .cloud-bank--two{transform:translate(50vw,-35vh) rotate(15deg);opacity:0;transition:transform 1.2s cubic-bezier(.4,0,.8,.3) .04s,opacity .78s ease .2s}.cloud-loader.is-clearing .cloud-bank--three{transform:translate(-52vw,36vh) rotate(12deg);opacity:0;transition:transform 1.16s cubic-bezier(.4,0,.8,.3) .1s,opacity .72s ease .24s}.cloud-loader.is-clearing .cloud-bank--four{transform:translate(52vw,38vh) rotate(-13deg);opacity:0;transition:transform 1.25s cubic-bezier(.4,0,.8,.3) .02s,opacity .78s ease .2s}.cloud-loader.is-clearing .cloud-bank--five{transform:scale(1.55);opacity:0;transition:transform 1.12s cubic-bezier(.2,.65,.3,1),opacity .64s ease .28s}@keyframes cloud-loading{to{transform:translateX(122%)}}
.topbar{position:fixed;inset:1.25rem 1.5rem auto;z-index:20;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.top-actions{display:flex;align-items:center;pointer-events:auto}.language-toggle{position:relative;display:flex;align-items:center;gap:.55rem;min-width:5.3rem;padding:.58rem .75rem .58rem .65rem;border:1px solid #ffffff70;border-radius:99px;color:#fff;background:linear-gradient(135deg,#0b4056cc,#072c3bb8);box-shadow:0 8px 24px #002b3c38,inset 0 1px #ffffff3d;backdrop-filter:blur(16px);cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s}.language-toggle:hover{transform:translateY(-1px);background:linear-gradient(135deg,#155a70e6,#0a3547d9);box-shadow:0 10px 28px #002b3c52,inset 0 1px #ffffff52}.language-toggle:active{transform:translateY(1px)}.language-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}.language-globe{display:grid;place-items:center;width:1.45rem;height:1.45rem;border:1px solid #ffffff8c;border-radius:50%;font-size:.9rem;line-height:1}.language-code{min-width:1.45rem;font-size:.74rem;font-weight:800;letter-spacing:.12em}.language-dot{width:.38rem;height:.38rem;border-radius:50%;background:#a9e8d4;box-shadow:0 0 9px #a9e8d4}
.map-viewport{height:100dvh;display:grid;place-items:center;overflow:hidden}.map-stage{position:relative;width:min(100vw,calc(100dvh * 1.6423));aspect-ratio:2654/1616;flex:none;transition:transform .3s ease-out;will-change:transform}.map-background,.map-layers,.hotspots{position:absolute;inset:0;width:100%;height:100%}.map-background{display:block;object-fit:fill}.map-layers{pointer-events:none}.layer{position:absolute;display:block}.forhonor{left:16.2%;top:15.47%;width:16.73%;height:25.8%}.dokaebi{left:66.5%;top:14.23%;width:19.07%;height:26.79%}.land{left:13.87%;top:36.7%;width:73.02%;height:46.78%}.nursing{left:42.58%;top:32.18%;width:15.86%;height:25.87%}.monster{left:69.33%;top:55.07%;width:15.86%;height:29.33%}.ship-base,.ship-overlay{left:41.64%;top:64.36%;width:23.74%;height:27.72%}.ship{left:46.72%;top:67.57%;width:11.45%;height:23.45%}.snow{left:15.07%;top:-15.47%;width:67.48%;height:33.73%}.sign{left:42.2%;top:4.02%;width:19.67%;height:21.16%}.hark{left:21.1%;top:58.79%;width:5.28%;height:7.18%}.cloud{left:67.94%;top:11.7%;width:16.96%;height:14.23%}.hospital-light{left:49.47%;top:51.73%;width:1.55%;height:2.48%}.monster-idle{left:69.89%;top:51.98%;width:14.43%;height:23.02%}.fish{left:46.72%;top:21.66%;width:12.02%;height:29.15%}
.hotspots{z-index:3}.hotspot{position:absolute;border:0;padding:0;background:transparent;cursor:pointer;border-radius:46%}.hotspot:after{content:"";position:absolute;inset:2%;border:2px solid transparent;border-radius:inherit;background:radial-gradient(ellipse at center,#ffffff3d 0%,#ffffff1a 45%,transparent 76%);opacity:0;filter:blur(5px);transition:opacity .25s}.hotspot:hover:after{opacity:1}.hotspot:focus-visible:after{opacity:1;border-color:#fffc}.hotspot:focus-visible{outline:0}.hotspot span{position:absolute;left:50%;top:-.45rem;translate:-50% -100%;min-width:max-content;max-width:22rem;padding:.7rem 2.5rem;color:#fff;background:linear-gradient(90deg,transparent 0%,#082b3a99 14%,#092f3fd9 32%,#092f3ff0 50%,#092f3fd9 68%,#082b3a99 86%,transparent 100%);font-family:"Pretendard","Noto Sans KR",system-ui,sans-serif;font-size:clamp(12px,1.05vw,16px);font-weight:600;letter-spacing:-.01em;line-height:1.2;opacity:0;transform:translateY(.55rem);transition:opacity .2s,transform .24s cubic-bezier(.2,.8,.2,1);pointer-events:none;text-shadow:0 1px 3px #001018,0 0 12px #aee7df4d}.hotspot span:before,.hotspot span:after{content:"";position:absolute;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,#d7eef199 30%,#d7eef1cc 50%,#d7eef199 70%,transparent)}.hotspot span:before{top:0}.hotspot span:after{bottom:0}.hotspot:hover span,.hotspot:focus-visible span{opacity:1;transform:none}.area-forhonor{left:16.2%;top:16.09%;width:16.2%;height:21.66%}.area-nursing{left:42.58%;top:35.77%;width:15.64%;height:19.8%}.area-dokaebi{left:68.65%;top:18.01%;width:16.2%;height:19.8%}.area-clash{left:18.84%;top:60.02%;width:9.91%;height:16.71%}.area-monster{left:69.33%;top:55.69%;width:15.83%;height:26.61%}.area-company{left:42.58%;top:4.33%;width:18.99%;height:18.44%}.area-contact{left:42.58%;top:66.21%;width:20.72%;height:21.04%}
.map-hint{position:fixed;left:50%;bottom:1rem;z-index:10;translate:-50%;margin:0;padding:.55rem .9rem;border-radius:99px;color:#fffffff0;background:#052b3980;backdrop-filter:blur(10px);font-size:.78rem;pointer-events:none}.scrim{position:fixed;inset:0;z-index:29;background:#01141d3d;backdrop-filter:blur(2px)}.info-panel{position:fixed;z-index:30;inset:.75rem .75rem .75rem auto;width:min(38rem,calc(100vw - 1.5rem));border:1px solid #ffffff8c;border-radius:1.4rem;background:var(--paper);box-shadow:-18px 20px 60px #001b3f40;backdrop-filter:blur(28px);transform:translateX(calc(100% + 2rem));transition:transform .45s cubic-bezier(.2,.8,.2,1);overflow:hidden}.info-panel:focus{outline:none}.info-panel.is-open{transform:none}.panel-scroll{height:100%;overflow:auto;padding:1rem 1rem 3rem;scrollbar-width:none;-ms-overflow-style:none}.panel-scroll::-webkit-scrollbar{display:none}.eyebrow{margin:2rem 1.1rem .4rem;color:#6d7f83;font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.info-panel h2{margin:0 1.1rem 1.5rem;font-size:clamp(1.8rem,4vw,3rem);line-height:1.08;letter-spacing:-.045em}.panel-copy{margin:0 1.1rem;font-size:.98rem;line-height:1.85}.panel-copy h3{margin:2rem 0 .7rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.95rem;letter-spacing:.08em;text-transform:uppercase}.panel-copy ul{margin:0;padding-left:1.2rem}.panel-copy li+li{margin-top:.45rem}
.media-viewer{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:1rem;background:#0c2732;cursor:grab;touch-action:pan-y;user-select:none}.media-viewer.is-dragging{cursor:grabbing}.media-frame{display:flex;width:100%;height:100%;will-change:transform}.media-frame img,.media-frame video{display:block;flex:0 0 100%;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none}.media-count{position:absolute;right:.8rem;bottom:.65rem;margin:0;padding:.25rem .5rem;border-radius:99px;color:#fff;background:#041c2694;font-size:.7rem;pointer-events:none}.contact-form{display:grid;gap:.85rem}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.contact-form label{display:grid;gap:.35rem;font-size:.8rem;font-weight:700}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:.6rem;padding:.75rem;color:var(--ink);background:#ffffffb8}.contact-form textarea{min-height:9rem;resize:vertical}.contact-form button{border:0;border-radius:.65rem;padding:.9rem;color:#fff;background:#174f61;font-weight:800;cursor:pointer}noscript{position:fixed;z-index:100;inset:auto 1rem 1rem;padding:1rem;background:#fff}
@media(max-width:700px){.topbar{inset:.75rem .75rem auto}.info-panel{inset:4.5rem .45rem .45rem;width:calc(100vw - .9rem)}.map-hint{bottom:.6rem;white-space:nowrap}.field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.map-stage{transform:none!important}.cloud-loader{transition:opacity .2s ease!important}.cloud-loader.is-clearing{opacity:0!important}.cloud-loader.is-clearing .cloud-bank{transform:none!important;opacity:0!important}}
.toast{position:fixed;left:50%;top:1.25rem;z-index:100;translate:-50% -140%;max-width:min(90vw,28rem);padding:.85rem 1.15rem;border:1px solid #bfe1d7;border-radius:12px;color:#174d40;background:#f4fffbf2;box-shadow:0 12px 32px #002c3d38;backdrop-filter:blur(14px);font-size:.9rem;font-weight:700;text-align:center;opacity:0;transition:translate .28s cubic-bezier(.2,.8,.2,1),opacity .2s;pointer-events:none}.toast.is-visible{translate:-50% 0;opacity:1}.toast.is-error{border-color:#e7c6c1;color:#7a3028;background:#fff8f6f2}.contact-form button:disabled{opacity:.65;cursor:wait}

/* Cloud opening: reveal the map by moving distinct cloud masses, without fading the whole screen. */
.cloud-loader{background:#dceef3;transition:background-color .12s linear .08s,visibility 0s linear 1.55s}
.cloud-loader__glow{background:radial-gradient(circle at 50% 45%,#fff 0 8%,#ffffffd9 27%,#dceef3 66%);transition:opacity .18s linear .06s,transform .9s ease}
.cloud-loader.is-clearing{opacity:1;background-color:transparent;visibility:hidden}
.cloud-loader.is-clearing .cloud-bank--one{transform:translate(-78vw,-42vh) rotate(-18deg) scale(.86);opacity:0;transition:transform 1.34s cubic-bezier(.22,.65,.25,1),opacity .28s ease 1.02s}
.cloud-loader.is-clearing .cloud-bank--two{transform:translate(80vw,-46vh) rotate(19deg) scale(.84);opacity:0;transition:transform 1.42s cubic-bezier(.22,.65,.25,1) .03s,opacity .28s ease 1.08s}
.cloud-loader.is-clearing .cloud-bank--three{transform:translate(-82vw,48vh) rotate(17deg) scale(.82);opacity:0;transition:transform 1.38s cubic-bezier(.22,.65,.25,1) .08s,opacity .25s ease 1.08s}
.cloud-loader.is-clearing .cloud-bank--four{transform:translate(82vw,50vh) rotate(-18deg) scale(.84);opacity:0;transition:transform 1.46s cubic-bezier(.22,.65,.25,1) .02s,opacity .28s ease 1.12s}
.cloud-loader.is-clearing .cloud-bank--five{transform:scale(1.9);opacity:0;transition:transform 1.18s cubic-bezier(.2,.65,.3,1),opacity .34s ease .34s}
@media(prefers-reduced-motion:reduce){.cloud-loader{transition:opacity .2s ease!important}.cloud-loader.is-clearing{opacity:0!important}.cloud-loader.is-clearing .cloud-bank{transform:none!important;opacity:0!important}}

/* Simple full-screen fade reveal. */
.cloud-loader{background:radial-gradient(circle at 50% 42%,#f8fdff 0,#dceef3 46%,#aacbd5 100%);opacity:1;transition:opacity .72s ease,visibility 0s linear .72s}
.cloud-loader__glow{transition:none}
.cloud-loader.is-clearing{opacity:0;visibility:hidden}

/* Three softly pulsing ice crystals replace the linear loading bar. */
.cloud-loader__label i{display:flex;align-items:center;justify-content:center;gap:.62rem;width:auto;height:.7rem;margin:.85rem auto 0;overflow:visible;background:none}
.cloud-loader__label i:after{content:none}
.cloud-loader__label i b{display:block;width:.42rem;height:.42rem;border:1px solid #407485;background:#dff7fb;box-shadow:0 0 0 2px #ffffff80,0 0 12px #75bdcd;transform:rotate(45deg) scale(.62);opacity:.34;animation:ice-crystal-pulse 1.15s ease-in-out infinite}
.cloud-loader__label i b:nth-child(2){animation-delay:.16s}
.cloud-loader__label i b:nth-child(3){animation-delay:.32s}
@keyframes ice-crystal-pulse{0%,65%,100%{transform:rotate(45deg) scale(.62);opacity:.3}28%{transform:rotate(45deg) scale(1);opacity:1;box-shadow:0 0 0 2px #ffffffb8,0 0 17px #5eb5c9}}
