:root{--blue:#003876;--blue-2:#1a5aa8;--ink:#1d2733;--muted:#5d6875;--card:#fffffff0;--line:#1d27331f;--err:#b23a48;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-tap-highlight-color:transparent;background:#cfe3ef;margin:0;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;overflow:hidden}#app,#app canvas{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}.muted{color:var(--muted)}.tiny{font-size:12px;line-height:1.45}.err{color:var(--err)}button{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:8px 12px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600}button.ghost{background:0 0}input{font:inherit}.screen{z-index:30;background:#cfe3ef8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.card{background:var(--card);border-radius:16px;width:100%;max-width:420px;padding:20px;box-shadow:0 10px 30px #001e4626}.entry{gap:10px;display:grid}.entry h1{margin:2px 0 0;font-size:22px}.entry label{gap:6px;font-size:14px;font-weight:600;display:grid}.entry input{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.colors{flex-wrap:wrap;gap:8px;display:flex}.colors button{width:30px;height:30px;box-shadow:0 0 0 1px var(--line);border:3px solid #fff;border-radius:50%;padding:0}.colors button[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}.badge{color:#fff;letter-spacing:.01em;background:#c46a1a;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud>*{pointer-events:auto}.top-left{top:max(10px, env(safe-area-inset-top));pointer-events:none;gap:6px;display:grid;position:absolute;left:12px}.status{background:var(--card);border-radius:10px;width:-moz-fit-content;width:fit-content;padding:5px 10px;font-size:13px}.top-right{top:max(10px, env(safe-area-inset-top));justify-items:end;gap:6px;display:grid;position:absolute;right:12px}#minimap{background:#e4e0d6;border:2px solid #fff;border-radius:14px;width:170px;height:170px;box-shadow:0 4px 14px #001e462e}.row{flex-wrap:wrap;gap:6px;display:flex}.top-right .row button{background:var(--card);padding:6px 10px;font-size:13px}.search{top:max(10px, env(safe-area-inset-top));width:min(260px,40vw);position:absolute;left:50%;transform:translate(-50%)}.search input{border:1px solid var(--line);background:var(--card);border-radius:999px;width:100%;padding:8px 12px}.search ul{background:#fff;border-radius:12px;max-height:46vh;margin:4px 0 0;padding:4px;list-style:none;overflow:auto;box-shadow:0 8px 22px #001e462e}.search li{cursor:pointer;border-radius:8px;padding:7px 10px;font-size:14px}.search li:hover,.search li[aria-selected=true]{background:#eef3fa}.compass{top:calc(max(10px, env(safe-area-inset-top)) + 44px);background:var(--card);border-radius:999px;padding:4px 12px;font-size:13px;position:absolute;left:50%;transform:translate(-50%)}.panel{background:var(--card);border-radius:16px;gap:8px;width:300px;max-height:calc(100% - 330px);padding:14px 16px;display:grid;position:absolute;top:250px;right:12px;overflow:auto;box-shadow:0 10px 30px #001e462e}.panel .close,.rules .close{background:0 0;border:0;padding:2px 8px;font-size:20px;position:absolute;top:8px;right:10px}.panel{position:absolute}.panel-title{padding-right:24px;font-size:18px;font-weight:700}.holder{align-items:center;gap:8px;font-size:14px;display:flex}.swatch{border:1px solid #00000026;border-radius:4px;width:14px;height:14px;display:inline-block}.board{margin:4px 0 0;padding:0;font-size:13px;list-style:none}.board li{justify-content:space-between;gap:8px;padding:2px 0;display:flex}.me{background:#eef3fa;border-radius:10px;padding:8px 10px;font-size:13px}.actions{bottom:max(18px, env(safe-area-inset-bottom));gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.actions button{background:var(--card);border-radius:999px;padding:10px 14px;box-shadow:0 4px 12px #001e4626}.feed{gap:4px;width:260px;display:grid;position:absolute;bottom:150px;left:12px;pointer-events:none!important}.feed div{background:#ffffffdb;border-radius:10px;padding:5px 9px;font-size:12px}.toast{background:var(--blue);color:#fff;text-align:center;border-radius:14px;padding:12px 18px;font-weight:700;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 30px #001e464d;pointer-events:none!important}.joystick{left:22px;bottom:max(22px, env(safe-area-inset-bottom));touch-action:none;background:#ffffff59;border:2px solid #ffffffb3;border-radius:50%;width:120px;height:120px;display:none;position:absolute}.joystick .knob{background:#ffffffe6;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #00000026}.touch .joystick{display:block}.perf{background:#fffc;border-radius:6px;padding:3px 6px;font:11px ui-monospace,monospace;position:absolute;bottom:8px;left:12px;pointer-events:none!important}.overlay{z-index:20;background:#f0eee8f7;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#mapview canvas{width:100%;height:100%;position:absolute;inset:0}.map-tools{background:#fff;border-radius:12px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex;position:absolute;top:12px;right:12px}.rules{max-width:520px;max-height:90vh;position:relative;overflow:auto}.rules h2{margin-top:0;font-size:18px}.rules h3{margin:14px 0 6px;font-size:15px}.rules ul{padding-left:18px;font-size:14px;line-height:1.6}@media (max-width:700px){#minimap{width:118px;height:118px}.search{left:12px;top:calc(max(10px, env(safe-area-inset-top)) + 58px);width:calc(100% - 150px);transform:none}.panel{width:auto;max-height:46vh;inset:auto 10px 86px}.feed{width:210px;bottom:160px}.touch .feed{display:none}.actions{left:auto;right:12px;bottom:max(22px, env(safe-area-inset-bottom));flex-direction:column;align-items:flex-end;transform:none}.actions button{padding:12px 16px}}.campus-list{gap:8px;display:grid}.campus-item{text-align:left;gap:2px;padding:12px 14px;display:grid}.campus-item b{font-size:16px}.intro{background:var(--card);z-index:5;border-radius:12px;max-width:min(520px,100% - 32px);padding:10px 14px;font-size:14px;position:fixed;bottom:120px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #001e461f}.entry .badge{justify-self:start}
