@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;top:0;right:0;bottom:0;left: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;top:-1px;right:-1px;bottom:-1px;left:-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)}}:root{--bg-base: #080510;--bg-surface: rgba(18, 9, 36, .88);--bg-surface-2: rgba(28, 14, 54, .65);--border-glow: rgba(139, 92, 246, .28);--border-subtle: rgba(139, 92, 246, .14);--text-primary: #ede9fe;--text-muted: #c4b5fd;--text-dim: #7c6d9e;--grad-primary: linear-gradient(135deg, #7c3aed 0%, #a855f7 55%, #c084fc 100%);--grad-deep: linear-gradient(135deg, #4c1d95 0%, #7c3aed 100%);--grad-text: linear-gradient(135deg, #c084fc 0%, #a78bfa 55%, #818cf8 100%);--glow-sm: 0 0 10px rgba(139, 92, 246, .3);--glow-md: 0 0 22px rgba(139, 92, 246, .45)}body{margin:0;font-family:Quicksand,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-base);background-image:radial-gradient(ellipse at 15% 15%,rgba(124,58,237,.18) 0%,transparent 55%),radial-gradient(ellipse at 85% 85%,rgba(168,85,247,.14) 0%,transparent 55%);background-attachment:fixed;color:var(--text-primary);line-height:1.6;font-size:15px;font-weight:400}*{box-sizing:border-box}.App{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:15px}.container{background:var(--bg-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:20px;border-radius:18px;border:1px solid var(--border-glow);box-shadow:0 8px 40px #0000008c,0 0 0 1px var(--border-subtle),inset 0 1px #ffffff0a;width:100%;max-width:680px;text-align:center}.app-header{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:100%;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--border-glow);gap:15px}.app-header h1{margin-bottom:0;font-size:1.9em;font-weight:700;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-section{display:flex;flex-direction:column;align-items:center;width:100%;gap:10px;margin-top:20px;margin-bottom:20px}.auth-section p.auth-intro-text{font-size:.9em;color:var(--text-muted);margin-bottom:0;font-weight:500;text-align:center;max-width:90%}.auth-section>div[id^=credential_picker_container],.auth-section>div>div[role=button]{display:flex!important;justify-content:center!important;width:auto!important;min-width:220px!important;max-width:280px!important}.app-header .user-info{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;font-size:.9em;color:var(--text-muted)}.app-header .user-info span{font-weight:500}.app-header .user-avatar{width:32px;height:32px;border-radius:50%;border:2px solid rgba(167,139,250,.5);box-shadow:var(--glow-sm)}.app-header .logout-button{background:rgba(139,92,246,.18);border:1px solid var(--border-glow);color:var(--text-muted);padding:7px 13px;font-size:.85em;box-shadow:none}.app-header .logout-button:hover:not(:disabled){background:rgba(139,92,246,.32);box-shadow:var(--glow-sm)}h2{margin-top:25px;margin-bottom:12px;font-size:1.5em;font-weight:600;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}h3{color:var(--text-muted);margin-bottom:8px;font-size:1.15em;font-weight:600}h4{color:#a78bfa;margin-bottom:8px;font-size:1em;font-weight:500}.upload-section,.result-section,.crop-area-container{margin-bottom:25px;width:100%}.upload-section p,.result-section p,.crop-area-container p{font-size:.9em;color:var(--text-muted);font-weight:400;max-width:90%;margin:-5px auto 15px}.result-section p strong{font-weight:600;color:var(--text-primary)}.supported-formats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;justify-content:center}.supported-formats-label{font-size:.78em;color:#a78bfa;font-weight:500;margin-right:2px}.format-tag{font-size:.72em;font-weight:600;color:var(--text-muted);background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.35);border-radius:4px;padding:2px 7px;letter-spacing:.04em;transition:border-color .2s,background .2s}.format-tag:hover{background:rgba(139,92,246,.22);border-color:#a78bfa8c}input[type=file]{display:block;width:100%;max-width:100%;margin:0 auto 15px;padding:10px 12px;font-size:.9em;border:2px dashed rgba(139,92,246,.45);border-radius:8px;background-color:#8b5cf612;color:var(--text-muted);cursor:pointer;font-family:Quicksand,sans-serif;transition:background-color .2s ease,border-color .2s ease}input[type=file]::file-selector-button{margin-right:10px;padding:8px 12px;font-size:.9em;border:none;background:var(--grad-primary);color:#fff;border-radius:6px;cursor:pointer;font-family:Quicksand,sans-serif;font-weight:500;transition:opacity .2s ease,box-shadow .2s ease}input[type=file]:hover{background-color:#8b5cf624;border-color:#a78bfaa6}input[type=file]:hover::file-selector-button{opacity:.85;box-shadow:var(--glow-sm)}button{background:var(--grad-primary);color:#fff;border:none;padding:10px 20px;font-size:.95em;font-weight:600;border-radius:8px;cursor:pointer;font-family:Quicksand,sans-serif;transition:opacity .2s ease,transform .1s ease,box-shadow .2s ease;box-shadow:0 2px 14px #7c3aed52;width:auto;display:inline-block;letter-spacing:.5px}.action-button{background:linear-gradient(135deg,#5b21b6 0%,#7c3aed 55%,#a855f7 100%);color:#fff;width:100%;max-width:280px}.action-button:hover:not(:disabled){opacity:.88;box-shadow:var(--glow-md)}.secondary-action-button{background:rgba(139,92,246,.12);border:1px solid var(--border-glow);color:var(--text-muted);width:100%;max-width:280px;font-weight:500;box-shadow:none}.secondary-action-button:hover:not(:disabled){background:rgba(139,92,246,.22);border-color:#a78bfa80;box-shadow:var(--glow-sm)}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #0000004d}button:disabled{background:rgba(109,40,217,.18);color:#a78bfa61;cursor:not-allowed;box-shadow:none}.download-button{background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 55%,#a855f7 100%);width:100%;max-width:280px;box-shadow:0 2px 18px #7c3aed73}.download-button:hover:not(:disabled){opacity:.88;box-shadow:0 4px 28px #7c3aeda6}.image-preview-container{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:18px;margin-bottom:18px}.image-box{flex:1 1 100%;width:100%;max-width:300px;padding:12px;border:1px solid var(--border-glow);border-radius:12px;background:var(--bg-surface-2);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:auto;box-shadow:0 4px 20px #00000059,0 0 0 1px var(--border-subtle)}.image-box img{max-width:100%;height:auto;max-height:260px;object-fit:contain;border-radius:6px;margin-bottom:8px;border:1px solid var(--border-glow)}.error{margin:15px auto;padding:10px 15px;border-radius:8px;font-weight:500;max-width:90%;text-align:center;font-size:.9em;color:#fca5a5;background-color:#dc262624;border:1px solid rgba(220,38,38,.32)}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:25px 0;min-height:100px}.loading-indicator p{margin-top:12px;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:500;font-size:1em}.crop-area-container{margin-top:20px;margin-bottom:20px;border:1px dashed rgba(139,92,246,.35);padding:15px;border-radius:12px;background:rgba(15,7,32,.55)}.crop-actions-container{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:20px}.crop-output-preview-container{padding:10px;border:1px solid var(--border-glow);border-radius:8px;background:var(--bg-surface-2);display:inline-block}.crop-output-image{max-width:250px;max-height:140.625px;border:1px solid var(--border-glow);border-radius:4px;display:block;margin:0 auto}.link-button{background:none;border:none;color:#a78bfa;text-decoration:underline;cursor:pointer;padding:0;font-size:inherit;font-family:inherit;font-weight:500;box-shadow:none}.link-button:hover{color:#c4b5fd;transform:none}.disclaimer{margin-top:40px;padding-top:20px;border-top:1px solid var(--border-subtle);font-size:.8em;color:var(--text-dim);text-align:center;max-width:600px;line-height:1.5;font-weight:400}.disclaimer a{color:#a78bfa;text-decoration:underline;font-weight:500}.disclaimer a:hover{color:var(--text-muted)}.disclaimer p{font-weight:400}.disclaimer p strong{font-weight:600;color:var(--text-muted)}@media (min-width: 576px){body{font-size:15px}.container{padding:25px 30px}.app-header h1{font-size:2em}.user-info{font-size:.95em}.image-box{max-width:380px}.action-button,.secondary-action-button,.download-button{max-width:300px}}@media (min-width: 768px){.App{padding:20px}.container{padding:30px 40px;max-width:680px}.app-header{flex-direction:row}.app-header .user-info{justify-content:flex-end}.app-header h1{font-size:2.2em}.user-info{font-size:1em;gap:12px}.user-avatar{width:35px;height:35px}h2{font-size:1.6em}h3{font-size:1.2em}input[type=file]{max-width:380px;padding:12px 15px;font-size:.95em}input[type=file]::file-selector-button{padding:10px 15px;font-size:.95em}button{padding:12px 25px;font-size:1em}.action-button,.secondary-action-button,.download-button{width:auto;max-width:none}.image-preview-container{flex-direction:row;justify-content:space-around;align-items:flex-start}.image-box{flex:1 1 260px;width:auto;max-width:none;min-height:240px}.image-box img{max-height:240px}.error{font-size:.95em}.loading-indicator p{font-size:1.05em}}@media (min-width: 992px){.container{max-width:760px}body{font-size:16px}}.ReactCrop__crop-selection{border-color:#c084fccc!important;box-shadow:0 0 0 9999em #0009!important}.ReactCrop__drag-handle:after{background-color:#c084fc!important;border-color:#c084fc!important}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}
