.splash{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0f;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;cursor:pointer;transition:opacity .5s ease}.splash--fading{opacity:0;pointer-events:none}.splash__content{display:flex;flex-direction:column;align-items:center;gap:12px;animation:splashIn .6s cubic-bezier(.16,1,.3,1) forwards}@keyframes splashIn{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.splash__logo-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.splash__brand{font-size:42px;font-weight:700;letter-spacing:8px;color:#fff;font-family:Outfit,Inter,sans-serif}.splash__year{font-size:11px;letter-spacing:4px;color:#ffffff59;font-family:Outfit,Inter,sans-serif}.splash__sub{font-size:13px;letter-spacing:2px;color:#ffffff80;margin:8px 0 0}.splash__bar{width:120px;height:1px;background:#ffffff1a;border-radius:1px;overflow:hidden;margin-top:20px}.splash__bar-fill{height:100%;background:#fff;border-radius:1px;animation:splashProgress 2.2s cubic-bezier(.4,0,.2,1) forwards}@keyframes splashProgress{0%{width:0%}to{width:100%}}.splash__skip{position:absolute;bottom:32px;font-size:11px;color:#ffffff40;letter-spacing:1px}.header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid #e5e5e5;background:#fff;flex-shrink:0;gap:16px;min-height:56px}.header__left{display:flex;align-items:center;gap:16px}.header__brand{display:flex;flex-direction:column;line-height:1}.header__logo{font-size:16px;font-weight:700;letter-spacing:3px;color:#0f0f0f;font-family:Outfit,Inter,sans-serif}.header__est{font-size:9px;letter-spacing:2px;color:#888;margin-top:2px}.header__disclaimer{border-left:1px solid #e5e5e5;padding-left:16px}.header__disclaimer p{margin:0;font-size:10px;color:#888;line-height:1.5}.header__disclaimer-en{color:#aaa!important}.header__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.header__whitelabel{display:flex;align-items:center;gap:5px;font-size:12px;color:#666;cursor:pointer;margin-right:8px}.header__whitelabel input{cursor:pointer}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap;font-family:inherit}.btn:active{opacity:.8;transform:scale(.98)}.btn--ghost{background:transparent;border:1px solid #d4d4d4;color:#444}.btn--ghost:hover{background:#f5f5f5}.btn--primary{background:#0f0f0f;border:1px solid #0f0f0f;color:#fff}.btn--primary:hover{background:#333;border-color:#333}.upload-slot{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px dashed #d4d4d4;border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;min-height:40px;background:#fff}.upload-slot:hover:not(.upload-slot--filled){border-color:#999;background:#f9f9f9}.upload-slot--filled{border-style:solid;border-color:#e0e0e0;cursor:default}.upload-slot__input{display:none}.upload-slot__icon{font-size:18px;color:#ccc;line-height:1;flex-shrink:0}.upload-slot__label{font-size:12px;color:#aaa}.upload-slot__thumb{width:28px;height:28px;object-fit:contain;border-radius:4px;background:#f0f0f0;flex-shrink:0}.upload-slot__name{font-size:12px;color:#444;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-slot__remove{margin-left:auto;width:20px;height:20px;border:none;background:#eee;border-radius:50%;font-size:14px;line-height:1;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.upload-slot__remove:hover{background:#fdd;color:#c00}.sidebar{width:200px;min-width:200px;border-right:1px solid #e5e5e5;background:#fafafa;overflow-y:auto;padding:0 0 80px;display:flex;flex-direction:column}.sidebar__section{padding:14px 14px 0}.sidebar__section--uploads{flex:1}.sidebar__label{font-size:10px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:#aaa;margin:0 0 8px}.sidebar__chips{display:flex;flex-wrap:wrap;gap:5px}.chip{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid #e0e0e0;background:#fff;color:#555;cursor:pointer;transition:all .12s;font-family:inherit}.chip:hover{border-color:#bbb;color:#222}.chip--active{background:#0f0f0f;border-color:#0f0f0f;color:#fff}.sidebar__swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:22px;height:22px;border-radius:50%;background:var(--swatch-color);border:2px solid transparent;cursor:pointer;transition:transform .12s,border-color .12s;padding:0}.swatch:hover{transform:scale(1.15)}.swatch[style*="#FFFFFF"],.swatch[style*="#F5F0E8"]{border-color:#ddd}.swatch--active{outline:2px solid #0f0f0f;outline-offset:2px}.swatch--custom{position:relative;display:flex;align-items:center;justify-content:center;background:#fff;border:1px dashed #ccc;overflow:hidden}.swatch--custom input[type=color]{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;width:30px;height:30px;border:none;cursor:pointer;opacity:0}.swatch--custom-icon{font-size:13px;color:#aaa;pointer-events:none}.sidebar__color-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px}.sidebar__hex-input{width:72px;font-size:11px;font-family:SF Mono,Consolas,monospace;padding:3px 6px;border:1px solid #e0e0e0;border-radius:4px;background:#fff;color:#555;text-transform:uppercase}.sidebar__hex-input:focus{outline:none;border-color:#999}.sidebar__color-name{font-size:11px;color:#999;margin:0}.sidebar__uploads{display:flex;flex-direction:column;gap:6px;padding-bottom:14px}.canvas-area{flex:1;display:flex;align-items:center;justify-content:center;background:#f4f4f4;overflow:hidden;padding:24px}.canvas-area--both{gap:24px}.canvas-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.canvas-wrap--hidden{display:none}.canvas-label{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#999}.canvas-area canvas{border-radius:4px;box-shadow:0 2px 16px #0000001a}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:42px;border-top:1px solid #e5e5e5;background:#fff;flex-shrink:0;gap:12px}.toolbar__status{font-size:11px;color:#999;white-space:nowrap}.toolbar__status strong{color:#555;font-weight:500}.toolbar__tabs{display:flex;background:#f0f0f0;border-radius:999px;padding:2px;gap:2px}.toolbar__tab{font-size:12px;padding:4px 14px;border-radius:999px;border:none;background:transparent;color:#777;cursor:pointer;transition:all .15s;white-space:nowrap;font-family:inherit}.toolbar__tab:hover{color:#333}.toolbar__tab--active{background:#fff;color:#0f0f0f;font-weight:500;box-shadow:0 1px 3px #0000001a}.toolbar__note{font-size:11px;color:#bbb;white-space:nowrap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:Inter,Outfit,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;color:#222;background:#fff;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;outline:none}button:focus-visible{outline:2px solid #0f0f0f;outline-offset:2px}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app__workspace{display:flex;flex:1;overflow:hidden}.app__main{flex:1;display:flex;overflow:hidden}.export-dialog__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000}.export-dialog{background:#fff;border-radius:12px;padding:20px 24px;min-width:280px;box-shadow:0 8px 30px #00000026}.export-dialog__title{font-size:14px;font-weight:500;margin:0 0 14px;color:#222}.export-dialog__options{display:flex;gap:8px}.export-dialog__options .btn{flex:1;justify-content:center}
