*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--navy:#0f3551;--navy2:#071d2d;--cream:#fff9eb;--gold:#f3c94e;--green:#2d9862;--glass:rgba(5,25,40,.82)}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;font-family:Noto Sans KR,system-ui,sans-serif;background:#bde5f5;color:#fff}canvas{display:block;width:100%;height:100%;touch-action:none}.screen{position:fixed;inset:0;z-index:40;display:none;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(circle at 50% 30%,#275d7f,#071d2d)}.screen.show{display:flex}.loader{width:54px;height:54px;border:6px solid #ffffff2b;border-top-color:var(--gold);border-radius:50%;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.screen h1{margin:18px 0 6px;font-size:clamp(22px,4vw,38px)}.screen p{margin:4px 18px;color:#d6e6ef;text-align:center}.load-track{width:min(480px,78vw);height:12px;margin-top:20px;background:#ffffff20;border-radius:99px;overflow:hidden}.load-track div{height:100%;width:0;background:linear-gradient(90deg,#2dc3ff,var(--gold));transition:.3s}.select-card{width:min(1000px,94vw);max-height:92vh;overflow:auto;text-align:center;padding:24px}.eyebrow{color:#79e6ff!important;letter-spacing:.22em;font-weight:900}.sub{margin-bottom:20px!important}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.character-card{border:2px solid #ffffff1f;background:#102d43dd;border-radius:22px;padding:12px;color:#fff;cursor:pointer;transition:.2s}.character-card.selected{border-color:#7ce9ff;transform:translateY(-5px);box-shadow:0 15px 50px #0006}.character-card img{width:100%;height:250px;object-fit:contain;filter:drop-shadow(0 12px 12px #0008)}.character-card h3{margin:5px 0}.character-card p{font-size:12px}.primary{border:0;background:linear-gradient(135deg,#f3c94e,#ffea8a);color:#352500;font-weight:900;border-radius:16px}.big{padding:14px 40px;margin-top:18px;font-size:16px}.big:disabled{opacity:.35}.topbar{position:fixed;z-index:10;left:12px;right:12px;top:10px;display:flex;justify-content:space-between;pointer-events:none}.brand,.status span{background:var(--glass);border:1px solid #ffffff28;backdrop-filter:blur(10px);box-shadow:0 8px 30px #0004}.brand{border-radius:16px;padding:9px 14px;display:flex;flex-direction:column}.brand span{font-size:11px;color:#bfe1f0;margin-top:3px}.status{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.status span{border-radius:999px;padding:9px 11px;font-size:12px}.quest-panel{position:fixed;z-index:10;right:12px;top:75px;width:290px;padding:15px 15px 13px;background:var(--glass);border:1px solid #ffffff2b;border-radius:18px;backdrop-filter:blur(10px);transition:.25s}.quest-panel.closed{transform:translate(calc(100% + 18px))}.quest-panel h2{margin:0 0 9px;font-size:15px;color:#ffe887}.quest-panel ol{margin:0;padding-left:22px;font-size:12px;line-height:1.8}.quest-panel li.done{text-decoration:line-through;color:#75d9a5}.panel-toggle{position:absolute;left:-42px;top:6px;width:36px;height:36px;border:0;border-radius:12px;background:var(--glass);color:#fff}.interaction-hint{position:fixed;z-index:12;left:50%;bottom:108px;transform:translate(-50%);min-width:220px;text-align:center;padding:9px 14px;border-radius:99px;background:#092437df;border:1px solid #ffe28980;font-weight:800;font-size:13px;opacity:0;transition:.2s}.interaction-hint.show{opacity:1}.bottom-nav{position:fixed;z-index:15;left:50%;bottom:10px;transform:translate(-50%);display:flex;gap:6px;padding:7px;background:#082436db;border:1px solid #ffffff28;border-radius:24px;backdrop-filter:blur(12px)}.bottom-nav button{width:65px;height:58px;border:0;border-radius:16px;background:#ffffff10;color:#fff;font-size:20px}.bottom-nav button span{display:block;font-size:10px;margin-top:2px}.bottom-nav .interact{background:linear-gradient(135deg,#e9bd3c,#ffe989);color:#352600;transform:translateY(-7px)}.joystick{position:fixed;z-index:14;left:18px;bottom:20px;width:116px;height:116px;border-radius:50%;background:#ffffff25;border:2px solid #ffffff35;touch-action:none}.joystick div{position:absolute;width:48px;height:48px;left:32px;top:32px;border-radius:50%;background:linear-gradient(135deg,#fff2aa,#e8bd42);box-shadow:0 8px 22px #0006}.run-btn{position:fixed;z-index:14;right:18px;bottom:26px;width:74px;height:74px;border-radius:50%;border:2px solid #ffffff35;background:#143b54d9;color:#fff;font-weight:900}.toast{position:fixed;z-index:30;left:50%;top:44%;transform:translate(-50%,-50%);padding:12px 18px;border-radius:99px;background:#061724e8;border:1px solid #ffffff32;opacity:0;transition:.25s;font-weight:900}.toast.show{opacity:1;top:40%}.modal{position:fixed;z-index:35;inset:0;display:none;align-items:center;justify-content:center;background:#00101bb8;padding:18px;backdrop-filter:blur(8px)}.modal.show{display:flex}.modal-card{width:min(700px,100%);max-height:84vh;overflow:auto;background:#0a2639;border:1px solid #ffffff2d;border-radius:24px;padding:20px;color:#fff}.modal-close{float:right;border:0;background:#ffffff14;color:#fff;padding:8px 12px;border-radius:10px}.shop-grid,.inventory-grid,.farm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:15px}.item{background:#ffffff0c;border:1px solid #ffffff1b;border-radius:15px;padding:13px}.item button{width:100%;margin-top:8px;padding:9px;border:0;border-radius:10px;background:#f3c94e;font-weight:900}.progress{height:9px;background:#ffffff19;border-radius:99px;overflow:hidden;margin-top:8px}.progress div{height:100%;background:#55cc82}.map-preview{width:100%;aspect-ratio:16/9;border-radius:18px;background:#cbe9db;position:relative;overflow:hidden}.map-preview:before{content:"";position:absolute;left:8%;right:8%;top:44%;height:15%;background:#5d6469;box-shadow:0 0 0 12px #ddd}.map-preview:after{content:"";position:absolute;left:51%;top:0;bottom:0;width:12%;background:#3c9fd5}@media (max-width:760px){.character-grid{grid-template-columns:1fr}.character-card{display:grid;grid-template-columns:120px 1fr;text-align:left}.character-card img{height:180px;grid-row:1/4}.quest-panel{width:250px}.status span{padding:7px 8px}.brand b{font-size:12px}.bottom-nav button{width:52px}.joystick{width:104px;height:104px}.joystick div{left:28px;top:28px}.run-btn{width:66px;height:66px}.topbar{left:7px;right:7px}}@media (min-width:761px){.joystick,.run-btn{display:none}}
