*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:Noto Sans KR,sans-serif;overflow-x:hidden;width:100vw;min-height:100vh;background:#fef9f0}.app{position:relative;width:100vw;min-height:100vh;background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;flex-direction:column;align-items:center;overflow-x:hidden;padding-bottom:32px}.app:before{content:"";position:absolute;inset:0;background:#ffffff26;pointer-events:none;z-index:0}.counter-badge{position:relative;z-index:5;margin-top:20px;background:#ffffffd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50px;padding:10px 24px;display:flex;align-items:center;gap:10px;font-size:1.1rem;font-weight:700;color:#c0392b;box-shadow:0 4px 20px #0000001f;border:2px solid rgba(192,57,43,.2)}.counter-badge .count{font-size:2rem;font-weight:900;color:#e74c3c;line-height:1}.plus-one{position:absolute;top:-20px;right:10px;font-size:1.4rem;font-weight:900;color:#e74c3c;animation:float-up 1s ease-out forwards;pointer-events:none}@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-40px) scale(1.4)}}.settings-btn{position:fixed;top:16px;right:16px;z-index:50;background:#fffc;border:none;border-radius:50%;width:44px;height:44px;font-size:1.4rem;cursor:pointer;box-shadow:0 2px 10px #00000026;display:flex;align-items:center;justify-content:center;transition:transform .2s}.settings-btn:active{transform:scale(.9)}.stamp-jar{position:relative;flex:1;width:100%;max-width:500px;display:flex;align-items:flex-end;justify-content:center;margin-top:10px}.unicorn-wrapper{position:relative;display:inline-flex;align-items:flex-end;justify-content:center;max-height:55vh}.unicorn-wrapper.shaking{animation:unicorn-shake .5s ease}@keyframes unicorn-shake{0%{transform:rotate(0) scale(1)}15%{transform:rotate(-6deg) scale(1.04)}30%{transform:rotate(6deg) scale(1.04)}45%{transform:rotate(-4deg) scale(1.02)}60%{transform:rotate(4deg) scale(1.02)}75%{transform:rotate(-2deg) scale(1.01)}90%{transform:rotate(2deg) scale(1.01)}to{transform:rotate(0) scale(1)}}.unicorn-img{max-height:55vh;max-width:90%;object-fit:contain;display:block}.unicorn-color{position:relative;z-index:1}.unicorn-gray{position:absolute;top:0;left:50%;transform:translate(-50%);z-index:2;filter:grayscale(1);transition:clip-path .8s cubic-bezier(.34,1.2,.64,1)}.unicorn-placeholder{width:200px;height:200px;border-radius:50%;background:#fff9;border:3px dashed #e0b0b0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#c0a0a0;font-size:.9rem;font-weight:600;margin-bottom:20px}.unicorn-placeholder .placeholder-icon{font-size:3rem}.stamp-button-area{position:relative;z-index:10;padding:16px 0 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.stamp-btn{width:140px;height:140px;border-radius:50%;border:none;background:linear-gradient(145deg,#e74c3c,#c0392b);box-shadow:0 8px #922b21,0 12px 24px #c0392b73;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:transform .08s,box-shadow .08s;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.stamp-btn:active:not(:disabled),.stamp-btn.pressing{transform:translateY(6px);box-shadow:0 2px #922b21,0 4px 12px #c0392b66}.stamp-btn:disabled{opacity:.75;cursor:default}.stamp-btn-icon{font-size:2.8rem;line-height:1}.stamp-btn-img{width:72px;height:72px;border-radius:50%;object-fit:cover;pointer-events:none}.flying-stamp-img{width:80px;height:80px;border-radius:50%;object-fit:cover}.stamp-btn-label{font-size:1rem;font-weight:900;color:#fff;letter-spacing:-.5px}.stamp-btn:after{content:"";position:absolute;inset:0;background:#fff0;border-radius:50%;transition:background .2s}.stamp-btn.pressing:after{background:#ffffff1a}.cancel-btn{background:#ffffffbf;border:2px solid rgba(192,57,43,.3);border-radius:30px;padding:8px 20px;font-size:.85rem;font-weight:600;color:#c0392b;cursor:pointer;font-family:Noto Sans KR,sans-serif;transition:background .15s}.cancel-btn:active{background:#fffffff2}.flying-stamp-overlay{position:fixed;inset:0;z-index:100;pointer-events:none;display:flex;align-items:center;justify-content:center}.flying-stamp{animation:fly-to-jar .75s cubic-bezier(.25,.46,.45,.94) forwards;transform-origin:center}@keyframes fly-to-jar{0%{transform:translateY(30vh) scale(3);opacity:0}20%{transform:translateY(20vh) scale(2.5);opacity:1}40%{transform:translateY(10vh) scale(2.2);opacity:1}60%{transform:translateY(0) scale(1.8);opacity:1}80%{transform:translateY(-10vh) scale(1);opacity:.8}to{transform:translateY(-20vh) scale(.4);opacity:0}}.stamp-svg{width:100%;height:100%}.modal-backdrop{position:fixed;inset:0;z-index:200;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.modal-box{background:#fff;border-radius:24px;padding:28px 24px;width:min(340px,92vw);box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;align-items:center;gap:20px}.modal-title{font-size:1.2rem;font-weight:700;color:#2c2c2c}.pin-dots{display:flex;gap:16px}.pin-dot{width:18px;height:18px;border-radius:50%;border:2.5px solid #e74c3c;background:transparent;transition:background .15s}.pin-dot.filled{background:#e74c3c}.pin-dots.error .pin-dot{border-color:#e74c3c;background:#e74c3c;animation:pin-error-shake .4s ease}@keyframes pin-error-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%}.pin-key{aspect-ratio:1;border-radius:50%;border:none;background:#f5f5f5;font-size:1.5rem;font-weight:700;font-family:Noto Sans KR,sans-serif;color:#2c2c2c;cursor:pointer;transition:background .1s,transform .1s;display:flex;align-items:center;justify-content:center}.pin-key:active{background:#e0e0e0;transform:scale(.92)}.pin-key.del{font-size:1.2rem;background:#fff0f0;color:#e74c3c}.pin-key.empty{background:transparent;cursor:default}.modal-close-btn{background:none;border:none;color:#999;font-size:.9rem;cursor:pointer;font-family:Noto Sans KR,sans-serif;padding:4px 8px}.remove-count-row{display:flex;align-items:center;justify-content:center;gap:20px;padding:8px 0}.remove-count-btn{width:48px;height:48px;border-radius:50%;border:2px solid #e74c3c;background:#fff;color:#e74c3c;font-size:1.6rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s;font-family:Noto Sans KR,sans-serif}.remove-count-btn:active:not(:disabled){background:#fff0f0}.remove-count-btn:disabled{opacity:.3;cursor:default}.remove-count-display{display:flex;flex-direction:column;align-items:center}.remove-count-num{font-size:2.4rem;font-weight:900;color:#e74c3c;line-height:1}.remove-count-label{font-size:.8rem;color:#888}.remove-mode-desc{font-size:.85rem;color:#e74c3c;font-weight:600;text-align:center;padding:4px 0}.setup-modal .modal-box{gap:16px;align-items:stretch}.setup-section{display:flex;flex-direction:column;gap:8px}.setup-label{font-size:.85rem;font-weight:700;color:#555}.setup-input{border:2px solid #e0e0e0;border-radius:12px;padding:10px 14px;font-size:1rem;font-family:Noto Sans KR,sans-serif;outline:none;transition:border-color .15s;width:100%}.setup-input:focus{border-color:#e74c3c}.setup-file-label{display:flex;align-items:center;gap:8px;border:2px dashed #e0e0e0;border-radius:12px;padding:12px 14px;cursor:pointer;font-size:.85rem;color:#888;font-family:Noto Sans KR,sans-serif;transition:border-color .15s,background .15s}.setup-file-label:hover{border-color:#e74c3c;background:#fff5f5}.setup-file-label.has-file{border-color:#27ae60;color:#27ae60;background:#f0fff4}.setup-file-label input[type=file]{display:none}.setup-submit-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:14px;padding:14px;font-size:1rem;font-weight:700;font-family:Noto Sans KR,sans-serif;cursor:pointer;transition:opacity .15s;margin-top:4px}.setup-submit-btn:disabled{opacity:.5;cursor:default}.setup-submit-btn:active:not(:disabled){opacity:.85}.setup-error{color:#e74c3c;font-size:.8rem;text-align:center}.setup-divider{border:none;border-top:1px solid #eee}
