:root{--color-primary:#0f4c75;--color-primary-dark:#0a3552;--color-accent:#3aaed8;--color-bg:#f5f9fc;--color-surface:#fff;--color-text:#1b2430;--color-text-muted:#5a6b7b;--color-border:#e1e8ed;--radius:12px;--shadow:0 2px 8px #0f4c751f}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Noto Sans KR,sans-serif}#app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-primary);color:#fff;box-shadow:var(--shadow)}.header-inner{justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:16px 24px;display:flex}.logo-group{align-items:center;gap:10px;display:flex}.logo-icon{object-fit:contain;width:34px;height:34px}.logo{margin:0;font-size:1.4rem;font-weight:700}.header-actions{align-items:center;gap:12px;display:flex}.counter{font-size:.95rem;font-weight:500}.btn{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:8px 18px;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .2s}.btn:hover{background:#2f95bd}.btn-icon{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:50%;width:36px;height:36px;font-size:1rem}.game{flex-direction:column;flex:1;gap:16px;width:100%;max-width:960px;margin:0 auto;padding:16px;display:flex}.workspace{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius);flex:1;min-height:320px;position:relative;overflow:hidden}.workspace-hint{color:var(--color-text-muted);pointer-events:none;justify-content:center;align-items:center;margin:0;font-size:.9rem;display:flex;position:absolute;inset:0}.workspace-hint.hidden{display:none}.tray{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;flex-shrink:0;align-content:flex-start;gap:10px;min-height:96px;max-height:33vh;padding:16px;display:flex;overflow-y:auto}.item{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;text-align:center;border-radius:var(--radius);background-color:#0000;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:128px;padding:8px;font-size:1.15rem;font-weight:500;transition:background-color .15s;display:flex}.item .item-icon{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;font-size:1.8rem;transition:box-shadow .15s;display:flex;overflow:hidden}.item .item-icon.combine-target{box-shadow:inset 0 0 0 999px #5a6b7b73}.item .item-icon img{object-fit:cover;width:100%;height:100%}.item .item-label{line-height:1.2}.workspace .item{z-index:1;position:absolute}.workspace .item.dragging,.tray .item.dragging{opacity:.6;cursor:grabbing;z-index:2}.item.combine-fail{animation:.3s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.item.combine-success{animation:.35s ease-out pop}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}dialog.modal{border-radius:var(--radius);border:none;max-width:360px;padding:24px;font-family:Noto Sans KR,sans-serif;box-shadow:0 8px 24px #0003}dialog.modal[open]{animation:.2s ease-out modalIn}@keyframes modalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}dialog.modal::backdrop{background:#0f243066}dialog.modal h2{color:var(--color-primary);margin-top:0}dialog.modal p{color:var(--color-text-muted);line-height:1.6}@media (width<=480px){.header-inner{flex-wrap:wrap;gap:8px;padding:12px 16px}.logo{font-size:1.1rem}.item{width:96px;font-size:.95rem}.item .item-icon{width:60px;height:60px;font-size:1.4rem}}
