:root{--text: #b3abbd;--text-h: #f6f2f8;--bg: #18161c;--bg-raised: #221f27;--border: #322d38;--code-bg: #221f27;--accent: #c31f4c;--accent-2: #d98fd6;--accent-bg: rgba(195, 31, 76, .12);--accent-border: rgba(195, 31, 76, .5);--social-bg: rgba(26, 23, 32, .5);--shadow: rgba(0, 0, 0, .5) 0 10px 15px -3px, rgba(0, 0, 0, .3) 0 4px 6px -2px;--sans: system-ui, "Segoe UI", Roboto, sans-serif;--heading: system-ui, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width:1024px){:root{font-size:16px}}#root{width:1126px;max-width:100%;margin:0 auto;text-align:center;border-inline:1px solid var(--border);min-height:100svh;display:flex;flex-direction:column;box-sizing:border-box}body{margin:0}h1,h2{font-family:var(--heading);font-weight:500;color:var(--text-h)}h1{font-size:56px;letter-spacing:-1.68px;margin:32px 0}@media(max-width:1024px){h1{font-size:36px;margin:20px 0}}h2{font-size:24px;line-height:118%;letter-spacing:-.24px;margin:0 0 8px}@media(max-width:1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);display:inline-flex;border-radius:4px;color:var(--text-h)}code{font-size:15px;line-height:135%;padding:4px 8px;background:var(--code-bg)}.edit-image{max-width:100%;max-height:400px;display:block;background-color:#fff}.crop-area{margin-top:20px;display:flex;justify-content:center;padding:16px;background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;--rc-drag-handle-bg-colour: var(--accent-2);--rc-focus-color: var(--accent-2)}.app{max-width:720px;margin:0 auto;padding:20px 20px 48px}.field-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:8px}.field{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.field-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text);opacity:.75}.dpi-warning{display:inline-block;margin:12px auto 0;padding:6px 14px;border-radius:999px;border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--text-h);font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px;margin-bottom:8px}.page-count{margin-top:24px;color:var(--text)}button{min-height:44px;padding:0 18px;cursor:pointer;border-radius:8px;border:1px solid var(--accent);background:transparent;color:var(--text-h);font:inherit;font-weight:600;font-size:14px;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease,transform .15s ease,opacity .2s ease}button:hover{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:var(--accent-2);box-shadow:0 0 16px #c31f4c59;transform:translateY(-1px)}button:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 12px #c31f4c4d}.btn-primary:hover{box-shadow:0 0 20px #c31f4c80}.btn-muted{border-color:var(--border);color:var(--text);opacity:.8}.btn-muted:hover{background:var(--bg-raised);border-color:var(--text);box-shadow:none;opacity:1}input[type=number]{min-height:44px;padding:0 10px;box-sizing:border-box;border-radius:8px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-h);font:inherit}input[type=number]:focus-visible{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-bg)}input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper{display:flex;align-items:stretch;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.stepper-btn{min-width:44px;min-height:44px;padding:0;border:none;border-radius:0;background:var(--bg-raised);color:var(--text-h);font-size:20px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center}.stepper-btn:hover:not(:disabled){box-shadow:none;transform:none}.stepper-btn:disabled{opacity:.35;cursor:not-allowed;background:var(--bg-raised);box-shadow:none}.stepper-input{width:60px;min-height:44px;padding:0 4px;text-align:center;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:0}.stepper-input:focus-visible{outline:none;box-shadow:none;position:relative;z-index:1}.purchase-gate{display:flex;flex-direction:column;align-items:center;gap:6px}.link-button{background:none;border:none;min-height:auto;padding:0;color:var(--text);font-size:13px;text-decoration:underline;text-underline-offset:2px}.link-button:hover{background:none;box-shadow:none;transform:none;color:var(--text-h)}.license-key-hint{font-size:12px;color:var(--text);opacity:.7;margin:0}.license-unlock{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px}.license-hint{font-size:14px;color:var(--text);margin:0}.license-input{min-height:44px;width:220px;max-width:100%;padding:0 12px;box-sizing:border-box;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit}.license-input:focus-visible{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-bg)}.license-actions{display:flex;gap:8px}.license-error{color:var(--accent-2);font-size:13px;margin:0}.tile-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:4px;margin-top:20px}.tile-preview{border:1px solid #ccc}.tile-label{font-size:10px}.tile-canvas{width:100%}.upload-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;text-align:center;background:radial-gradient(ellipse 60% 40% at 50% 0%,var(--accent-bg),transparent),var(--bg)}.upload-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.upload-button{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;border-radius:10px;border:1px solid var(--accent);background:var(--bg-raised);color:var(--text-h);font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease,transform .15s ease;box-shadow:0 0 #c31f4c00}.upload-button svg{width:20px;height:20px;flex-shrink:0}.upload-button:hover{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:var(--accent-2);box-shadow:0 0 28px #c31f4c73;transform:translateY(-2px)}.upload-button:active{transform:translateY(0)}.upload-button:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.upload-hint{margin-top:20px;font-size:14px;color:var(--text);opacity:.7}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.install-gate{flex:1;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 20px;text-align:center;background:radial-gradient(ellipse 60% 40% at 50% 0%,var(--accent-bg),transparent),var(--bg)}.install-gate-icon{width:88px;height:88px;border-radius:20px;margin-bottom:8px}.install-gate-hint{color:var(--text);margin:0 0 20px;max-width:30ch}.install-gate .link-button{margin-top:16px}.ios-install-overlay{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:20px;background:#0009;z-index:10}.ios-install-card{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 20px;border-radius:16px;background:var(--bg-raised);border:1px solid var(--border);text-align:center;color:var(--text)}.ios-install-title{color:var(--text-h);font-weight:600;font-size:16px;margin:0}.ios-install-icon{width:18px;height:18px;vertical-align:middle;margin:0 4px;color:var(--accent-2)}
