@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg);min-height:100vh;transition:var(--transition-colors)}ol,ul{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:none}button,input,select,textarea{font-family:inherit;font-size:inherit;border:none}input,select,textarea{outline:none}img,svg,video{display:block;max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--color-text-primary);letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-4xl);font-weight:var(--font-extrabold)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h5,h6{font-weight:var(--font-semibold)}h6{font-size:var(--text-base)}p{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}small{font-size:var(--text-sm);color:var(--color-text-tertiary)}strong{font-weight:var(--font-semibold)}code{font-size:.875em;padding:var(--space-0-5) var(--space-1-5);background:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-primary-600)}code,pre{font-family:var(--font-mono)}pre{font-size:var(--text-sm);padding:var(--space-4);background:var(--color-neutral-900);border-radius:var(--radius-lg);overflow-x:auto;color:var(--color-neutral-100)}.link{color:var(--color-primary-500);transition:var(--transition-fast);position:relative}.link:hover{color:var(--color-primary-600)}.link-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width var(--duration-200) var(--ease-out)}.link-underline:hover:after{width:100%}::selection{background:var(--color-primary-200);color:var(--color-primary-900)}::-moz-selection{background:var(--color-primary-200);color:var(--color-primary-900)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-neutral-400);border-radius:var(--radius-full);-webkit-transition:var(--transition-fast);transition:var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}*{scrollbar-width:thin;scrollbar-color:var(--color-neutral-400) var(--color-bg-secondary)}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-200)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}@media (max-width:639px){.sm\:hidden{display:none}}@media (min-width:640px){h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}}@media (min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){h1{font-size:var(--text-6xl)}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}:root{--color-primary-50:#EEF2FF;--color-primary-100:#E0E7FF;--color-primary-200:#C7D2FE;--color-primary-300:#A5B4FC;--color-primary-400:#818CF8;--color-primary-500:#6366F1;--color-primary-600:#4F46E5;--color-primary-700:#4338CA;--color-primary-800:#3730A3;--color-primary-900:#312E81;--color-primary-950:#1E1B4B;--color-accent-50:#FAF5FF;--color-accent-100:#F3E8FF;--color-accent-200:#E9D5FF;--color-accent-300:#D8B4FE;--color-accent-400:#C084FC;--color-accent-500:#A855F7;--color-accent-600:#9333EA;--color-accent-700:#7C3AED;--color-accent-800:#6B21A8;--color-accent-900:#581C87;--color-accent-950:#3B0764;--color-blue-50:#EFF6FF;--color-blue-100:#DBEAFE;--color-blue-200:#BFDBFE;--color-blue-300:#93C5FD;--color-blue-400:#60A5FA;--color-blue-500:#3B82F6;--color-blue-600:#2563EB;--color-blue-700:#1D4ED8;--color-blue-800:#1E40AF;--color-blue-900:#1E3A8A;--color-neutral-0:#FFFFFF;--color-neutral-50:#FAFAFA;--color-neutral-100:#F4F4F5;--color-neutral-200:#E4E4E7;--color-neutral-300:#D4D4D8;--color-neutral-400:#A1A1AA;--color-neutral-500:#71717A;--color-neutral-600:#52525B;--color-neutral-700:#3F3F46;--color-neutral-800:#27272A;--color-neutral-900:#18181B;--color-neutral-950:#09090B;--color-success-50:#F0FDF4;--color-success-500:#22C55E;--color-success-600:#16A34A;--color-warning-50:#FFFBEB;--color-warning-500:#F59E0B;--color-warning-600:#D97706;--color-error-50:#FEF2F2;--color-error-500:#EF4444;--color-error-600:#DC2626;--color-info-50:#EFF6FF;--color-info-500:#3B82F6;--color-info-600:#2563EB;--gradient-primary:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-accent-500) 100%);--gradient-primary-hover:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-accent-600) 100%);--gradient-subtle:linear-gradient(135deg,var(--color-primary-50) 0%,var(--color-accent-50) 100%);--gradient-dark:linear-gradient(135deg,var(--color-neutral-900) 0%,var(--color-primary-950) 100%);--gradient-glass:linear-gradient(135deg,rgba(255,255,255,0.1),rgba(255,255,255,0.05));--gradient-radial:radial-gradient(ellipse at top,var(--color-primary-100) 0%,transparent 50%);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono","Fira Code","SF Mono",Consolas,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--font-thin:100;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--tracking-tighter:-0.05em;--tracking-tight:-0.025em;--tracking-normal:0;--tracking-wide:0.025em;--tracking-wider:0.05em;--tracking-widest:0.1em;--space-0:0;--space-px:1px;--space-0-5:0.125rem;--space-1:0.25rem;--space-1-5:0.375rem;--space-2:0.5rem;--space-2-5:0.625rem;--space-3:0.75rem;--space-3-5:0.875rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--space-11:2.75rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-28:7rem;--space-32:8rem;--radius-none:0;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-sm:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px -1px rgba(0,0,0,0.1);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,0.25);--shadow-inner:inset 0 2px 4px 0 rgba(0,0,0,0.05);--shadow-primary:0 10px 40px -10px rgba(99,102,241,0.4);--shadow-primary-sm:0 4px 14px -3px rgba(99,102,241,0.3);--shadow-accent:0 10px 40px -10px rgba(168,85,247,0.4);--glow-primary:0 0 30px rgba(99,102,241,0.3);--glow-accent:0 0 30px rgba(168,85,247,0.3);--border-width-thin:1px;--border-width-default:2px;--border-width-thick:4px;--border-default:var(--border-width-thin) solid var(--color-neutral-200);--border-primary:var(--border-width-default) solid var(--color-primary-500);--border-focus:var(--border-width-default) solid var(--color-primary-400);--duration-75:75ms;--duration-100:100ms;--duration-150:150ms;--duration-200:200ms;--duration-300:300ms;--duration-500:500ms;--duration-700:700ms;--duration-1000:1000ms;--ease-linear:linear;--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-bounce:cubic-bezier(0.68,-0.55,0.265,1.55);--ease-elastic:cubic-bezier(0.68,-0.6,0.32,1.6);--ease-spring:cubic-bezier(0.175,0.885,0.32,1.275);--transition-fast:all var(--duration-150) var(--ease-in-out);--transition-default:all var(--duration-200) var(--ease-in-out);--transition-slow:all var(--duration-300) var(--ease-in-out);--transition-colors:color,background-color,border-color,text-decoration-color,fill,stroke var(--duration-200) var(--ease-in-out);--transition-transform:transform var(--duration-200) var(--ease-out);--transition-opacity:opacity var(--duration-200) var(--ease-in-out);--transition-shadow:box-shadow var(--duration-200) var(--ease-in-out);--z-below:-1;--z-base:0;--z-dropdown:10;--z-sticky:20;--z-fixed:30;--z-overlay:40;--z-modal:50;--z-popover:60;--z-tooltip:70;--z-toast:80;--z-maximum:100;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--btn-height-sm:2rem;--btn-height-md:2.5rem;--btn-height-lg:3rem;--btn-padding-x-sm:var(--space-3);--btn-padding-x-md:var(--space-4);--btn-padding-x-lg:var(--space-6);--input-height-sm:2rem;--input-height-md:2.5rem;--input-height-lg:3rem;--input-padding-x:var(--space-3);--card-padding:var(--space-6);--card-radius:var(--radius-xl);--card-shadow:var(--shadow-md);--cropper-handle-size:12px;--cropper-handle-color:var(--color-primary-500);--cropper-grid-color:rgba(255,255,255,0.3);--cropper-overlay-color:rgba(0,0,0,0.5);--cropper-border-color:var(--color-primary-400)}.dark,[data-theme=dark]{--color-bg:var(--color-neutral-950);--color-bg-secondary:var(--color-neutral-900);--color-bg-tertiary:var(--color-neutral-800);--color-surface:var(--color-neutral-900);--color-surface-elevated:var(--color-neutral-800);--color-text-primary:var(--color-neutral-50);--color-text-secondary:var(--color-neutral-400);--color-text-tertiary:var(--color-neutral-500);--color-text-muted:var(--color-neutral-600);--color-border:var(--color-neutral-800);--color-border-hover:var(--color-neutral-700);--color-border-focus:var(--color-primary-500);--shadow-sm:0 1px 3px 0 rgba(0,0,0,0.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.3);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.3);--gradient-glass:linear-gradient(135deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02))}.light,:root,[data-theme=light]{--color-bg:var(--color-neutral-50);--color-bg-secondary:var(--color-neutral-100);--color-bg-tertiary:var(--color-neutral-0);--color-surface:var(--color-neutral-0);--color-surface-elevated:var(--color-neutral-0);--color-text-primary:var(--color-neutral-900);--color-text-secondary:var(--color-neutral-600);--color-text-tertiary:var(--color-neutral-500);--color-text-muted:var(--color-neutral-400);--color-border:var(--color-neutral-200);--color-border-hover:var(--color-neutral-300);--color-border-focus:var(--color-primary-500)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-5%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes cropHandlePulse{0%,to{box-shadow:0 0 0 0 rgba(99,102,241,.4)}50%{box-shadow:0 0 0 8px rgba(99,102,241,0)}}@keyframes gridFade{0%,to{opacity:.3}50%{opacity:.5}}.animate-fadeIn{animation:fadeIn var(--duration-300) var(--ease-out) forwards}.animate-fadeInUp{animation:fadeInUp var(--duration-300) var(--ease-out) forwards}.animate-fadeInDown{animation:fadeInDown var(--duration-300) var(--ease-out) forwards}.animate-fadeInScale{animation:fadeInScale var(--duration-300) var(--ease-spring) forwards}.animate-slideInRight{animation:slideInRight var(--duration-300) var(--ease-out) forwards}.animate-slideInLeft{animation:slideInLeft var(--duration-300) var(--ease-out) forwards}.animate-pulse{animation:pulse 2s var(--ease-in-out) infinite}.animate-bounce{animation:bounce 1s infinite}.animate-spin{animation:spin 1s linear infinite}.animate-scaleIn{animation:scaleIn var(--duration-200) var(--ease-spring) forwards}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.glass{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1)}.glass,.glass-dark{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.glass-dark{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.05)}.glass-primary{background:rgba(99,102,241,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(99,102,241,.2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--btn-height-md);padding:0 var(--btn-padding-x-md);font-weight:var(--font-medium);font-size:var(--text-sm);line-height:1;border-radius:var(--radius-lg);transition:var(--transition-default);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent);opacity:0;transition:var(--transition-fast)}.btn:hover:before{opacity:1}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-sm{height:var(--btn-height-sm);padding:0 var(--btn-padding-x-sm);font-size:var(--text-xs);border-radius:var(--radius-md)}.btn-lg{height:var(--btn-height-lg);padding:0 var(--btn-padding-x-lg);font-size:var(--text-base);border-radius:var(--radius-xl)}.btn-primary{background:var(--gradient-primary);color:var(--color-neutral-0);box-shadow:var(--shadow-primary-sm)}.btn-primary:hover{box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0) scale(.98)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:var(--border-default)}.btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.btn-outline{background:transparent;color:var(--color-primary-500);border:2px solid var(--color-primary-500)}.btn-outline:hover{background:var(--color-primary-50);border-color:var(--color-primary-600);color:var(--color-primary-600)}.btn-danger{background:var(--color-error-500);color:var(--color-neutral-0)}.btn-danger:hover{background:var(--color-error-600)}.btn-icon{width:var(--btn-height-md);padding:0}.btn-icon.btn-sm{width:var(--btn-height-sm)}.btn-icon.btn-lg{width:var(--btn-height-lg)}.input-wrapper{display:flex;flex-direction:column;gap:var(--space-1-5)}.input-label{font-size:var(--text-sm);font-weight:var(--font-medium)}.input,.input-label{color:var(--color-text-primary)}.input{height:var(--input-height-md);padding:0 var(--input-padding-x);background:var(--color-bg-tertiary);border:var(--border-default);border-radius:var(--radius-lg);transition:var(--transition-fast)}.input:hover{border-color:var(--color-border-hover)}.input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.input::placeholder{color:var(--color-text-muted)}.input-sm{height:var(--input-height-sm);font-size:var(--text-sm)}.input-lg{height:var(--input-height-lg);font-size:var(--text-lg)}.input-group{position:relative;display:flex;align-items:center}.input-group .input{padding-left:var(--space-10)}.input-group .input-icon{position:absolute;left:var(--space-3);color:var(--color-text-muted);pointer-events:none}.card{background:var(--color-surface);border-radius:var(--card-radius);box-shadow:var(--card-shadow);overflow:hidden;transition:var(--transition-default)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{padding:var(--space-4) var(--card-padding);border-bottom:var(--border-default)}.card-body{padding:var(--card-padding)}.card-footer{padding:var(--space-4) var(--card-padding);border-top:var(--border-default);background:var(--color-bg-secondary)}.card-glass{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1)}.card-interactive{cursor:pointer}.card-interactive:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.toolbar-dark{background:var(--color-neutral-900);border:1px solid var(--color-neutral-800)}.toolbar-divider{width:1px;height:24px;background:var(--color-border);margin:0 var(--space-1)}.toolbar-group{display:flex;align-items:center;gap:var(--space-1)}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--color-bg-secondary);border-radius:var(--radius-full);outline:none;transition:var(--transition-fast)}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--gradient-primary);border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-md);-webkit-transition:var(--transition-fast);transition:var(--transition-fast)}.slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:var(--shadow-primary-sm)}.slider::-moz-range-thumb{width:18px;height:18px;background:var(--gradient-primary);border-radius:var(--radius-full);cursor:pointer;border:none}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-bg-tertiary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236366F1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 12px center;padding:0 var(--space-10) 0 var(--space-3);height:var(--input-height-md);border:var(--border-default);border-radius:var(--radius-lg);color:var(--color-text-primary);cursor:pointer;transition:var(--transition-fast)}.select:hover{border-color:var(--color-border-hover)}.select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.toggle{position:relative;width:44px;height:24px;background:var(--color-neutral-300);cursor:pointer}.toggle,.toggle:after{border-radius:var(--radius-full);transition:var(--transition-fast)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--color-neutral-0);box-shadow:var(--shadow-sm)}.toggle.active{background:var(--gradient-primary)}.toggle.active:after{transform:translateX(20px)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-md);background:var(--color-primary-100);color:var(--color-primary-700)}.badge-success{background:var(--color-success-50);color:var(--color-success-600)}.badge-warning{background:var(--color-warning-50);color:var(--color-warning-600)}.badge-error{background:var(--color-error-50);color:var(--color-error-600)}.badge-neutral{background:var(--color-neutral-100);color:var(--color-neutral-700)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-8px);padding:var(--space-1-5) var(--space-3);background:var(--color-neutral-900);color:var(--color-neutral-0);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap;border-radius:var(--radius-md);opacity:0;visibility:hidden;transition:var(--transition-fast);pointer-events:none;z-index:var(--z-tooltip)}.tooltip:hover:after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(-4px)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn var(--duration-200) var(--ease-out)}.modal{background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);max-width:500px;width:90%;max-height:90vh;overflow:hidden;animation:scaleIn var(--duration-300) var(--ease-spring)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:var(--border-default)}.modal-body{padding:var(--space-6);overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:var(--border-default);background:var(--color-bg-secondary)}.crop-container{position:relative;width:100%;aspect-ratio:16/9;background:var(--color-neutral-900);border-radius:var(--radius-xl);overflow:hidden}.crop-image{width:100%;height:100%;object-fit:contain}.crop-overlay{position:absolute;inset:0;background:var(--cropper-overlay-color);pointer-events:none}.crop-area{position:absolute;border:2px solid var(--cropper-border-color);box-shadow:0 0 0 9999px var(--cropper-overlay-color);cursor:move}.crop-handle{position:absolute;width:var(--cropper-handle-size);height:var(--cropper-handle-size);background:var(--color-neutral-0);border:2px solid var(--cropper-handle-color);border-radius:var(--radius-sm);transition:var(--transition-fast)}.crop-handle:hover{background:var(--cropper-handle-color);transform:scale(1.2)}.crop-handle-nw{top:-6px;left:-6px;cursor:nw-resize}.crop-handle-ne{top:-6px;right:-6px;cursor:ne-resize}.crop-handle-sw{bottom:-6px;left:-6px;cursor:sw-resize}.crop-handle-se{bottom:-6px;right:-6px;cursor:se-resize}.crop-handle-n{top:-6px;cursor:n-resize}.crop-handle-n,.crop-handle-s{left:50%;transform:translateX(-50%)}.crop-handle-s{bottom:-6px;cursor:s-resize}.crop-handle-e{right:-6px;cursor:e-resize}.crop-handle-e,.crop-handle-w{top:50%;transform:translateY(-50%)}.crop-handle-w{left:-6px;cursor:w-resize}.crop-grid{position:absolute;inset:0;pointer-events:none}.crop-grid-line{position:absolute;background:var(--cropper-grid-color)}.crop-grid-line-v1{left:33.33%;top:0;bottom:0;width:1px}.crop-grid-line-v2{left:66.66%;top:0;bottom:0;width:1px}.crop-grid-line-h1{top:33.33%;left:0;right:0;height:1px}.crop-grid-line-h2{top:66.66%;left:0;right:0;height:1px}.skeleton{background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.spinner{width:24px;height:24px;border:3px solid var(--color-primary-200);border-top-color:var(--color-primary-500);border-radius:var(--radius-full);animation:spin .8s linear infinite}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-lg{width:40px;height:40px;border-width:4px}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:slideInRight var(--duration-300) var(--ease-out)}.toast-success{border-left:4px solid var(--color-success-500)}.toast-error{border-left:4px solid var(--color-error-500)}.toast-warning{border-left:4px solid var(--color-warning-500)}.toast-info{border-left:4px solid var(--color-info-500)}.app-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--color-bg)}.app-main{flex:1 1;display:flex;flex-direction:column}.header{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background:rgba(255,255,255,.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.06);transition:var(--transition-default)}.header-scrolled{background:rgba(255,255,255,.95);box-shadow:0 4px 30px rgba(0,0,0,.08)}.header-container{max-width:1280px;margin:0 auto;padding:var(--space-3) var(--space-6);justify-content:space-between}.header-container,.header-logo{display:flex;align-items:center}.header-logo{gap:var(--space-3);text-decoration:none}.header-logo-text{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.logo-v7{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:var(--font-bold)}.header-nav{display:none;align-items:center;gap:var(--space-1)}@media (min-width:768px){.header-nav{display:flex}}.nav-link{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-lg);transition:var(--transition-fast)}.nav-link:hover{background:var(--color-primary-50)}.nav-author,.nav-link-external,.nav-link:hover{color:var(--color-primary-600)}.nav-author{display:none;font-weight:var(--font-medium)}@media (min-width:1024px){.nav-author{display:flex}}.header-actions{display:flex;align-items:center;gap:var(--space-2)}.hero{position:relative;padding:calc(80px + var(--space-16)) var(--space-6) var(--space-20);text-align:center;overflow:hidden;background:linear-gradient(180deg,#FAFBFF,#F0F3FF)}.hero-background{position:absolute;inset:0;overflow:hidden;pointer-events:none}.hero-gradient-1{top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,.15) 0,transparent 70%)}.hero-gradient-1,.hero-gradient-2{position:absolute;border-radius:50%}.hero-gradient-2{bottom:-100px;left:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(168,85,247,.1) 0,transparent 70%)}.hero-grid-pattern{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%236366F1' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.hero-content{position:relative;max-width:800px;margin:0 auto}.hero-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:var(--font-extrabold);line-height:1.1;letter-spacing:-.02em;margin-bottom:var(--space-6);color:var(--color-text-primary)}.hero-description{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:560px;margin:0 auto var(--space-8);line-height:1.7}@media (min-width:768px){.hero-description{font-size:var(--text-xl)}}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center}.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-primary-600);margin-bottom:var(--space-6)}.hero-badge strong{font-weight:var(--font-semibold);color:var(--color-primary-700)}.hero-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-6);margin-top:var(--space-8)}.trust-badge{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.trust-badge svg{color:var(--color-primary-500)}.converter-section{padding:var(--space-16) var(--space-6);background:var(--color-surface)}.section-header{text-align:center;margin-bottom:var(--space-10)}.section-title{font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-3);color:var(--color-text-primary)}@media (min-width:768px){.section-title{font-size:var(--text-4xl)}}.section-subtitle{font-size:var(--text-lg);color:var(--color-text-secondary)}.upload-zone{max-width:640px;margin:0 auto var(--space-6);padding:var(--space-12) var(--space-8);border:2px dashed var(--color-neutral-300);border-radius:var(--radius-2xl);background:linear-gradient(135deg,rgba(99,102,241,.02),rgba(168,85,247,.02));cursor:pointer;transition:var(--transition-default);text-align:center}.upload-zone:hover{border-color:var(--color-primary-400);background:linear-gradient(135deg,rgba(99,102,241,.05),rgba(168,85,247,.05));transform:translateY(-2px);box-shadow:0 20px 40px rgba(99,102,241,.1)}.upload-zone.drag-over{border-color:var(--color-primary-500);background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(168,85,247,.08));border-style:solid}.upload-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;margin-bottom:var(--space-4);background:var(--gradient-primary);border-radius:var(--radius-2xl);color:white;box-shadow:0 10px 30px rgba(99,102,241,.3)}.upload-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.upload-text{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.upload-browse{color:var(--color-primary-600);font-weight:var(--font-medium);text-decoration:underline;text-underline-offset:2px}.upload-meta{display:flex;justify-content:center;gap:var(--space-6);font-size:var(--text-xs);color:var(--color-text-muted)}.upload-meta span{display:flex;align-items:center;gap:var(--space-1)}.formats-bar{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-2);max-width:640px;margin:0 auto}.format-tag{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-primary-600);background:var(--color-primary-50);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.how-it-works-section{padding:var(--space-20) var(--space-6);background:linear-gradient(180deg,#F8F9FF,#FFFFFF)}.steps-grid{display:grid;grid-gap:var(--space-8);gap:var(--space-8);max-width:900px;margin:0 auto}@media (min-width:768px){.steps-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-6)}}.step-card{position:relative;text-align:center;padding:var(--space-8) var(--space-6);background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:0 4px 20px rgba(0,0,0,.05);transition:var(--transition-default)}.step-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(99,102,241,.1)}.step-number{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:36px;height:36px;display:flex;background:var(--gradient-primary);color:white;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-bold);box-shadow:0 8px 20px rgba(99,102,241,.3)}.step-icon-wrapper,.step-number{align-items:center;justify-content:center}.step-icon-wrapper{display:inline-flex;width:72px;height:72px;margin:var(--space-4) auto var(--space-4);background:linear-gradient(135deg,var(--color-primary-50) 0,var(--color-accent-50) 100%);border-radius:var(--radius-xl);color:var(--color-primary-600)}.step-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2);color:var(--color-text-primary)}.step-description{font-size:var(--text-sm);color:var(--color-text-secondary)}.step-arrow{display:none}@media (min-width:768px){.step-arrow{display:flex;position:absolute;right:-24px;top:50%;transform:translateY(-50%);color:var(--color-primary-200);z-index:1}}.features-section{padding:var(--space-20) var(--space-6);background:var(--color-surface)}.features-grid{display:grid;grid-gap:var(--space-6);gap:var(--space-6);max-width:1000px;margin:0 auto var(--space-16)}@media (min-width:768px){.features-grid{grid-template-columns:repeat(3,1fr)}}.feature-card{text-align:center;padding:var(--space-8);background:linear-gradient(135deg,#FAFBFF,#F5F7FF);border-radius:var(--radius-2xl);border:1px solid rgba(99,102,241,.08);transition:var(--transition-default)}.feature-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(99,102,241,.1);border-color:var(--color-primary-200)}.feature-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--space-5);background:var(--gradient-primary);border-radius:var(--radius-xl);color:white;box-shadow:0 10px 30px rgba(99,102,241,.25)}.feature-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2);color:var(--color-text-primary)}.feature-description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6}.technical-section{background:linear-gradient(135deg,var(--color-neutral-900) 0,#1E1B4B 100%);border-radius:var(--radius-3xl);padding:var(--space-12);max-width:1000px;margin:0 auto;color:white}.technical-content{display:grid;grid-gap:var(--space-8);gap:var(--space-8)}@media (min-width:768px){.technical-content{grid-template-columns:1fr 1fr}}.technical-text h3{font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-4);color:white}.technical-text p{font-size:var(--text-base);color:rgba(255,255,255,.75);line-height:1.7}.technical-features h4{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-3);color:white}.tech-intro{font-size:var(--text-sm);color:rgba(255,255,255,.7);margin-bottom:var(--space-4);line-height:1.6}.tech-list{list-style:none;flex-direction:column}.tech-list,.tech-list li{display:flex;gap:var(--space-3)}.tech-list li{align-items:flex-start;font-size:var(--text-sm);color:rgba(255,255,255,.85)}.tech-list li svg{flex-shrink:0;margin-top:2px;color:var(--color-success-500)}.why-v7-section{margin-top:var(--space-12);padding:var(--space-8);background:linear-gradient(135deg,var(--color-primary-50) 0,var(--color-accent-50) 100%);border-radius:var(--radius-2xl);text-align:center}.why-v7-section h3{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.why-v7-section p{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.8;max-width:700px;margin:0 auto}.why-v7-section strong{color:var(--color-primary-600)}.faq-section{padding:var(--space-20) var(--space-6);background:linear-gradient(180deg,#FFFFFF,#F8F9FF)}.faq-list{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-3)}.faq-item{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--color-neutral-200);overflow:hidden;transition:var(--transition-default)}.faq-item:hover{border-color:var(--color-primary-200)}.faq-item.open{border-color:var(--color-primary-300);box-shadow:0 8px 24px rgba(99,102,241,.08)}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);background:none;border:none;cursor:pointer;text-align:left;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-primary);transition:var(--transition-fast)}.faq-question:hover{color:var(--color-primary-600)}.faq-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .3s ease}.faq-chevron.open{transform:rotate(180deg);color:var(--color-primary-600)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.faq-item.open .faq-answer{max-height:300px;padding:0 var(--space-6) var(--space-5)}.faq-answer p{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7}.faq-cta{text-align:center;margin-top:var(--space-10);padding-top:var(--space-8);border-top:1px solid var(--color-neutral-200)}.faq-cta p{font-size:var(--text-base);color:var(--color-text-secondary)}.faq-cta a{color:var(--color-primary-600);font-weight:var(--font-medium);text-decoration:underline;text-underline-offset:2px}.faq-cta a:hover{color:var(--color-primary-700)}.footer{background:linear-gradient(135deg,var(--color-neutral-900) 0,#1E1B4B 100%);color:white;padding:var(--space-8) var(--space-6)}.footer-container{max-width:1000px;margin:0 auto}.footer-bottom{text-align:center}.footer-social{gap:var(--space-4);margin-bottom:var(--space-6)}.footer-social,.social-link{display:flex;align-items:center;justify-content:center}.social-link{width:40px;height:40px;background:rgba(255,255,255,.1);border-radius:var(--radius-full);color:rgba(255,255,255,.7);transition:var(--transition-fast)}.social-link:hover{background:var(--color-primary-500);color:white;transform:translateY(-2px)}.footer-credits{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.footer-credits span{font-size:var(--text-sm);color:rgba(255,255,255,.5)}.footer-author{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary-400);text-decoration:none;transition:var(--transition-fast)}.footer-author:hover{color:var(--color-primary-300);text-decoration:underline}.footer-copyright{font-size:var(--text-xs);color:rgba(255,255,255,.4)}.footer-copyright p{margin-bottom:var(--space-2);color:inherit}.footer-legal a{color:var(--color-primary-400);text-decoration:none}.footer-legal a:hover{text-decoration:underline}.cropper-workspace{display:flex;flex-direction:column;flex:1 1;background:var(--color-neutral-100);margin-top:72px}@media (min-width:1024px){.cropper-workspace{flex-direction:row}}.cropper-container{flex:1 1;display:flex;flex-direction:column;min-height:400px}.cropper-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:var(--border-default);gap:var(--space-3)}.cropper-toolbar .btn.active{background:var(--color-primary-100);color:var(--color-primary-600)}.cropper-image-container{flex:1 1;position:relative;background:var(--color-neutral-900);overflow:hidden;min-height:400px}.cropper-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:var(--color-neutral-900);color:var(--color-neutral-400);z-index:10}.cropper-overlay{position:absolute;inset:0;pointer-events:none}.overlay-region{position:absolute;background:rgba(0,0,0,.6)}.crop-selection{position:absolute;border:2px solid var(--color-primary-400);cursor:move;touch-action:none}.crop-dimensions{position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);padding:var(--space-1) var(--space-2);background:var(--color-neutral-900);color:var(--color-neutral-0);font-size:var(--text-xs);font-family:var(--font-mono);border-radius:var(--radius-md);white-space:nowrap}.cropper-sidebar{width:100%;background:var(--color-surface);border-top:var(--border-default);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);max-height:300px;overflow-y:auto}@media (min-width:1024px){.cropper-sidebar{width:320px;border-top:none;border-left:var(--border-default);max-height:none}}.sidebar-panel{background:var(--color-bg-secondary);border-radius:var(--radius-xl);overflow:hidden}.sidebar-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:var(--border-default);background:var(--color-surface)}.sidebar-panel-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.sidebar-panel-body{padding:var(--space-4)}.aspect-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));grid-gap:var(--space-2);gap:var(--space-2)}.aspect-preset{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-fast)}.aspect-preset:hover{border-color:var(--color-primary-300);background:var(--color-primary-50)}.aspect-preset.active{border-color:var(--color-primary-500);background:var(--color-primary-100);box-shadow:0 4px 12px rgba(99,102,241,.2)}.aspect-preset-icon{border:2px solid;border-radius:var(--radius-sm);color:var(--color-text-secondary)}.aspect-preset.active .aspect-preset-icon{color:var(--color-primary-600)}.aspect-preset-label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.aspect-preset.active .aspect-preset-label{color:var(--color-primary-600)}.zoom-control{display:flex;align-items:center;gap:var(--space-3)}.zoom-control .slider{flex:1 1}.zoom-value{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);min-width:44px;text-align:right}.info-list{display:flex;flex-direction:column;gap:var(--space-2)}.info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.info-item:last-child{border-bottom:none}.info-label{color:var(--color-text-secondary)}.info-label,.info-value{font-size:var(--text-sm)}.info-value{font-weight:var(--font-medium);font-family:var(--font-mono);color:var(--color-text-primary)}.sidebar-actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:auto;padding-top:var(--space-4)}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.w-full{width:100%}