:root{--bg-1: #120a05;--bg-2: #2b1a0c;--logo: #ffdf8f;--shadow: rgba(0, 0, 0, .45);--ui-shadow: rgba(0, 0, 0, .28)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;position:relative;background:radial-gradient(circle at 20% 18%,rgba(255,166,58,.18),transparent 38%),radial-gradient(circle at 82% 82%,rgba(255,95,46,.14),transparent 42%),linear-gradient(160deg,var(--bg-1),var(--bg-2));overflow:hidden}.page-header{position:absolute;left:50%;top:10px;transform:translate(-50%,-8px);z-index:12;min-width:min(74vw,560px);max-width:88vw;padding:8px 14px;border-radius:12px;border:1px solid rgba(255,239,197,.45);background:#1d130aad;color:#ffe9b5;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:space-between;gap:8px;box-shadow:0 8px 18px #00000047;opacity:0;pointer-events:none;transition:opacity .28s ease,transform .28s ease}body.world-active .page-header{opacity:1;pointer-events:auto;transform:translate(-50%);transition-delay:.12s}.page-header *{user-select:none!important;-webkit-user-select:none!important;cursor:pointer}.page-header-value{font-size:18px;letter-spacing:.03em;max-width:70vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-map{position:absolute;inset:0;opacity:0;overflow:hidden;pointer-events:none;touch-action:none;user-select:none;transition:opacity .9s ease}body.world-active.view-mode .stage-map{opacity:1;pointer-events:auto}body.world-active.edit-mode .stage-map{opacity:.5;pointer-events:auto}.stage-map-content{position:absolute;left:0;top:0;width:1600px;height:1600px;transform-origin:0 0;will-change:transform}.stage-map-image{position:absolute;left:0;top:0;width:100%;height:100%;filter:saturate(1.08) contrast(1.02);pointer-events:none;user-select:none;-webkit-user-drag:none}.stage-map.is-panning{cursor:grabbing}#info{position:absolute;left:30%;top:10%;padding:20px;z-index:11;background-color:#ffb6c1;color:#000;border-radius:30px;pointer-events:none;transform:translateY(8px);transition:opacity .28s ease,transform .28s ease}body.world-active #info{pointer-events:auto;transform:translateY(0);transition-delay:.12s}.logo-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;opacity:1;transition:opacity .32s ease}body.logo-exiting .logo-wrap{opacity:0;pointer-events:none}.logo{display:block;width:min(74vw,680px);min-width:250px;height:auto;filter:drop-shadow(0 14px 24px var(--shadow));animation:float-in .78s ease-out both;pointer-events:none;user-select:none}.control-stack{position:absolute;left:22px;top:10px;z-index:12;display:flex;flex-direction:column;align-items:flex-start;gap:10px;opacity:0;transform:translateY(8px);transition:opacity .28s ease,transform .28s ease}body.world-active .control-stack{opacity:1;transform:translateY(0);transition-delay:.12s}.mode-switch{position:relative;display:inline-flex;align-items:center}.mode-switch-input{position:absolute;opacity:0;pointer-events:none}.mode-switch-track{width:88px;height:44px;border-radius:999px;border:2px solid rgba(255,255,255,.5);background:linear-gradient(180deg,#20170cbd,#0e0905d6);box-shadow:0 8px 16px var(--ui-shadow);position:relative;cursor:pointer}.mode-switch-thumb{position:absolute;top:3px;left:3px;width:34px;height:34px;border-radius:50%;background:linear-gradient(180deg,#fff2be,#ffc95e);box-shadow:0 5px 10px #00000059;transition:transform .22s ease}.mode-switch-icon{position:absolute;top:50%;transform:translateY(-50%);font-size:18px;color:#d3d3d3;opacity:.72;transition:opacity .22s ease;user-select:none}.mode-switch-icon.view{left:12px}.mode-switch-icon.edit{right:12px}.mode-switch-input:checked+.mode-switch-track .mode-switch-thumb{transform:translate(44px)}.mode-switch-input:not(:checked)+.mode-switch-track .mode-switch-icon.view,.mode-switch-input:checked+.mode-switch-track .mode-switch-icon.edit{opacity:1}.add-stage-btn,.add-task-btn{width:52px;height:52px;border:0;border-radius:14px;font-size:34px;line-height:1;color:#2b1a0c;background:linear-gradient(180deg,#ffd778,#ffbb53);box-shadow:0 8px 18px var(--ui-shadow);cursor:pointer;opacity:0;transform:translateY(6px);transition:opacity .28s ease,transform .28s ease,filter .18s ease}.add-stage-btn{color:#2b1a0c;background:linear-gradient(180deg,#ffd778,#ffbb53)}.add-task-btn{color:#0f2a33;background:linear-gradient(180deg,#9ce7ff,#56c9f3)}.db-io-row{display:flex;gap:8px}.db-io-btn{min-width:72px;height:34px;border:0;border-radius:10px;font-size:12px;font-weight:700;color:#ffefcf;background:linear-gradient(180deg,#5c3b1d,#3a2310);box-shadow:0 6px 12px var(--ui-shadow);cursor:pointer}.db-io-btn:hover{filter:brightness(1.08)}.bgm-btn{width:34px;height:34px;border:0;border-radius:10px;font-size:18px;line-height:1;color:#ffefcf;background:linear-gradient(180deg,#5c3b1d,#3a2310);box-shadow:0 6px 12px var(--ui-shadow);cursor:pointer}.bgm-btn:hover{filter:brightness(1.08)}body.world-active.edit-mode .add-stage-btn,body.world-active.edit-mode .add-task-btn{opacity:1;transform:translateY(0)}body.world-active:not(.edit-mode) .add-stage-btn,body.world-active:not(.edit-mode) .add-task-btn{opacity:0;transform:translateY(6px);pointer-events:none}body.world-active #weightAdjustBtn{opacity:1;transform:translateY(0);pointer-events:auto;background:linear-gradient(180deg,#e9d8ff,#c29cff);color:#2f174e}.add-stage-btn:hover,.add-task-btn:hover{filter:brightness(1.05)}.add-stage-btn:active,.add-task-btn:active{transform:translateY(1px)}.stage-object,.task-object{position:absolute;width:156px;height:188px;box-shadow:0 12px 20px #00000059,inset 0 0 0 2px #e6f8ff33;box-shadow:none;cursor:grab;touch-action:none;overflow:visible;z-index:8;filter:drop-shadow(0 0 8px rgba(32,0,64,.9))}.stage-object{border:5px double rgba(128,128,0,.35);border-radius:48%;background:#4000004d}.task-object{border:none;background:transparent;opacity:1}.stage-object-side-image{position:absolute;left:50%;top:10px;width:128px;height:128px;transform:translate(-50%);overflow:visible;pointer-events:none;--sprite-cell-size: 128px}.task-object .stage-object-side-image{width:96px;height:96px;--sprite-cell-size: 96px;top:42px}.stage-object-side-image-img{display:block;width:100%;height:100%;object-fit:cover}.stage-object-side-image-img[hidden]{display:none}.stage-object-side-image-sprite{background-image:var(--sprite-sheet-url);background-repeat:no-repeat;background-size:calc(var(--sprite-cols, 12) * var(--sprite-cell-size)) calc(var(--sprite-rows, 12) * var(--sprite-cell-size));background-position:calc(var(--sprite-col, 0) * -1 * var(--sprite-cell-size)) calc(var(--sprite-row, 0) * -1 * var(--sprite-cell-size));--sprite-tone-filter: none}.stage-object-side-image-sprite.sprite-tone-red{--sprite-tone-filter: hue-rotate(90deg)}.stage-object-side-image-sprite.sprite-tone-dark{--sprite-tone-filter: brightness(.5) contrast(1.2)}body.view-mode .stage-object,body.view-mode .task-object{cursor:default}.stage-object-label{position:absolute;left:50%;top:145px;transform:translate(-50%);width:auto;padding:3px 8px;border:3px double rgba(192,128,0,.9);border-radius:8px;background:#fff;box-sizing:border-box;text-align:center;font-weight:700;font-size:13px;color:#3e1f06;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 0 rgba(255,255,255,.55)}.task-object .stage-object-label{border:3px double rgba(64,64,255,.9)}.stage-object.dragging,.task-object.dragging{cursor:grabbing;box-shadow:none}.stage-object-hp{position:absolute;left:50%;top:100%;transform:translate(-50%);width:128px;height:16px;border-radius:999px;background:#150e08eb;border:1px solid rgba(255,220,162,.55);padding:1px;pointer-events:none}.stage-object-hp-fill{display:block;width:100%;height:100%;border-radius:999px;background:#4dd26d;transition:width .18s ease,background-color .18s ease}.stage-dialog-backdrop{position:fixed;inset:0;background:radial-gradient(circle at 50% 42%,#00000059,#000000a6);z-index:39}.stage-settings-dialog{width:min(92vw,540px);border:1px solid rgba(255,213,142,.28);border-radius:20px;padding:0;background:linear-gradient(160deg,#2a180b,#120d08 72%);color:#ffe3b6;box-shadow:0 22px 42px #00000085,inset 0 1px #ffdea31f;z-index:40}.stage-settings-dialog::backdrop{background:transparent}.stage-dialog-shell{position:relative;padding:20px 20px 16px}.stage-dialog-title{margin:0;font-size:21px;letter-spacing:.02em}.stage-dialog-sub{margin:6px 0 0;font-size:13px;color:#ffe3b6cc}.stage-dialog-tabs{margin-top:14px;display:flex;gap:8px}.stage-dialog-tab{border:1px solid rgba(255,215,146,.3);border-top-left-radius:9px;border-top-right-radius:9px;background:#1f150ce6;color:#ffe3b6db;font-size:13px;font-weight:700;padding:7px 12px;cursor:pointer}.stage-dialog-tab.active{border-color:#ffd689eb;color:#2d1806;background:linear-gradient(180deg,#ffd889,#f4b752)}.stage-dialog-body{margin-top:16px}.stage-dialog-panel{display:none;flex-direction:column;gap:12px}.stage-dialog-panel.active{display:flex}.stage-field{display:flex;flex-direction:column;gap:6px}.stage-field label{font-size:13px;color:#ffe3b6db}.stage-field input,.stage-field textarea{width:100%;border:1px solid rgba(255,215,146,.32);border-radius:12px;background:#18100ae6;color:#fff3d9;padding:10px 12px;font-size:14px}.stage-field textarea{min-height:94px;resize:vertical}.stage-readonly-value{margin:0;width:100%;min-height:42px;border:1px solid rgba(255,215,146,.32);border-radius:12px;background:#18100ae6;color:#fff3d9;padding:10px 12px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.stage-image-group{border:1px solid rgba(255,215,146,.24);border-radius:14px;padding:10px;background:#140c068c}.stage-image-current{margin:0;font-size:12px;color:#ffe3b6d6}.stage-image-filter-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.stage-image-filter-field{display:flex;flex-direction:column;gap:4px}.stage-image-filter-field label{font-size:12px;color:#ffe3b6db}.stage-image-filter-field input{width:100%;padding:8px 10px;font-size:13px}.stage-image-filter-inputs{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;align-items:center}.dialog-image-preview{display:block;object-fit:cover;border:1px solid rgba(255,215,146,.36);border-radius:10px;background:#00000047}.dialog-image-preview-stage{width:128px;height:128px}.dialog-image-preview-task{width:96px;height:96px}.dialog-image-preview-map{width:min(100%,260px);height:146px}.stage-sprite-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#ffe3b6eb}.stage-sprite-toggle input{width:auto;margin:0}.stage-sprite-coord{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stage-sprite-coord-field{display:flex;flex-direction:column;gap:6px}.stage-sprite-coord-field label{font-size:12px;color:#ffe3b6d1}.stage-image-actions{display:flex;justify-content:flex-end;gap:10px}.hp-gauge{border:1px solid rgba(255,215,146,.34);border-radius:999px;background:#0c0804e6;padding:3px}.hp-gauge-fill{height:16px;width:100%;border-radius:999px;background:#4dd26d;transition:width .18s ease,background-color .18s ease}.hp-meta{display:flex;justify-content:space-between;align-items:center;margin-top:4px;font-size:12px}.hp-value{font-weight:700;color:#4dd26d}.stage-progress-range{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:#0c0804e6;outline:none;cursor:pointer}.stage-progress-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#9b60d0;cursor:pointer}.stage-progress-range::-webkit-slider-runnable-track{height:6px;border-radius:999px}.stage-progress-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#9b60d0;cursor:pointer;border:none}.stage-progress-range::-moz-range-track{height:6px;border-radius:999px;background:#0c0804e6}.stage-progress-range::-moz-range-progress{height:6px;border-radius:999px;background:#9b60d0}.stage-dialog-footer{margin-top:16px;display:flex;justify-content:flex-end;gap:10px}.stage-dialog-btn{border:0;border-radius:11px;font-size:14px;font-weight:700;padding:9px 14px;cursor:pointer}.stage-dialog-btn.cancel{color:#f4d9ab;background:#66492bc7}.stage-dialog-btn.save{color:#2d1806;background:linear-gradient(180deg,#ffd889,#f4b752)}.weight-table-wrap{border:1px solid rgba(255,215,146,.24);border-radius:12px;background:#140c068c;max-height:min(48vh,420px);overflow:auto}.weight-table{width:100%;border-collapse:collapse}.weight-table th,.weight-table td{border-bottom:1px solid rgba(255,215,146,.2);padding:8px 10px;font-size:13px;text-align:left}.weight-table th{position:sticky;top:0;z-index:1;background:#24150bf2;color:#ffe3b6e6}.weight-row-input{width:100%;border:1px solid rgba(255,215,146,.32);border-radius:8px;background:#18100ae6;color:#fff3d9;padding:6px 8px;font-size:13px}.map-transition-overlay{position:fixed;inset:0;background:#120a05;z-index:500;clip-path:circle(0% at 50% 50%);pointer-events:none;transition:clip-path .6s ease-in-out}.weight-total-row{margin:10px 0 0;display:flex;justify-content:flex-end;gap:10px;font-size:13px;color:#ffe3b6db}@keyframes float-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.map-context-menu{position:fixed;z-index:60;background:linear-gradient(160deg,#2a180b,#120d08 72%);border:1px solid rgba(255,213,142,.28);border-radius:12px;box-shadow:0 12px 28px #00000085,inset 0 1px #ffdea31a;padding:6px;min-width:190px}.map-context-menu-item{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:8px;color:#ffe3b6;font-size:14px;padding:8px 14px;cursor:pointer;transition:background .1s}.map-context-menu-item:hover:not(:disabled){background:#ffd79224}.map-context-menu-item:disabled{opacity:.4;cursor:default}.map-context-menu-item.danger{color:#ff7070}.map-context-menu-item.danger:hover:not(:disabled){background:#ff50501f}.map-context-menu-separator{height:1px;margin:4px 8px;background:#ffd79233}.ctx-confirm-dialog{width:min(88vw,400px)}.ctx-confirm-shell{padding:22px 22px 18px}.ctx-confirm-message{margin:12px 0 20px;font-size:14px;line-height:1.7;color:#ffe3b6e6;white-space:pre-line}.stage-dialog-btn.danger{color:#fff;background:linear-gradient(180deg,#e05050,#b83030)}@media(max-width:768px){.control-stack{left:12px;top:82px;gap:8px}.mode-switch-track{width:76px;height:38px}.mode-switch-thumb{width:28px;height:28px}.mode-switch-icon{font-size:16px}.mode-switch-icon.view{left:10px}.mode-switch-icon.edit{right:10px}.mode-switch-input:checked+.mode-switch-track .mode-switch-thumb{transform:translate(38px)}}
