@howssatoshi/quantumcss 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');:root{--color-primary:#3b82f6;--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-primary-900:#1e3a8a;--color-secondary:#64748b;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-neutral:#6b7280;--font-sans:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--font-serif:Georgia,Cambria,serif;--font-mono:'SF Mono',Monaco,'Cascadia Code',monospace;--space-0:0px;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-none:0px;--radius-sm:0.125rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);--shadow-xl:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);--shadow-2xl:0 25px 50px -12px rgb(0 0 0 / 0.25);--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);--color-starlight-blue:#00d4ff;--color-starlight-peach:#ffb38a;--color-starlight-orange:#ff7e5f;--color-starlight-deep:#08081a;--color-starlight-glow:rgba(0,212,255,0.35);--text-primary:#f1f5f9;--text-secondary:rgba(241,245,249,0.7);--text-muted:rgba(241,245,249,0.45);--light-bg:#f1f5f9;--light-text:#1e293b;--light-text-muted:#64748b;--light-card-bg:#ffffff;--light-card-border:rgba(0,0,0,0.06);--glass-bg:rgba(255,255,255,0.03);--glass-border:rgba(255,255,255,0.1);--glass-blur:blur(16px);--transition-fast:150ms ease-in-out;--transition-base:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:400ms ease-in-out;}@media (prefers-color-scheme:dark){:root{--color-primary:#60a5fa;--color-secondary:#94a3b8;--color-neutral:#9ca3af;}}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}html{line-height:1.6;-webkit-text-size-adjust:100%;font-family:'Inter',system-ui,-apple-system,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}body{line-height:inherit;}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:var(--space-4);padding-right:var(--space-4);}@container (min-width:640px){.container{max-width:640px;}}@container (min-width:768px){.container{max-width:768px;}}@container (min-width:1024px){.container{max-width:1024px;}}@container (min-width:1280px){.container{max-width:1280px;}}.block{display:block;}.inline-block{display:inline-block;}.inline{display:inline;}.flex{display:flex;}.inline-flex{display:inline-flex;}.grid{display:grid;}.inline-grid{display:inline-grid;}.hidden{display:none;}.flex-row{flex-direction:row;}.flex-row-reverse{flex-direction:row-reverse;}.flex-col{flex-direction:column;}.flex-col-reverse{flex-direction:column-reverse;}.flex-wrap{flex-wrap:wrap;}.flex-wrap-reverse{flex-wrap:wrap-reverse;}.flex-nowrap{flex-wrap:nowrap;}.items-start{align-items:flex-start;}.items-end{align-items:flex-end;}.items-center{align-items:center;}.items-baseline{align-items:baseline;}.items-stretch{align-items:stretch;}.justify-start{justify-content:flex-start;}.justify-end{justify-content:flex-end;}.justify-center{justify-content:center;}.justify-between{justify-content:space-between;}.justify-around{justify-content:space-around;}.justify-evenly{justify-content:space-evenly;}.flex-1{flex:1 1 0%;}.flex-auto{flex:1 1 auto;}.flex-initial{flex:0 1 auto;}.flex-none{flex:none;}.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));}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr));}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr));}.gap-0{gap:var(--space-0);}.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-5{gap:var(--space-5);}.gap-6{gap:var(--space-6);}.gap-8{gap:var(--space-8);}.m-0{margin:var(--space-0);}.m-1{margin:var(--space-1);}.m-2{margin:var(--space-2);}.m-3{margin:var(--space-3);}.m-4{margin:var(--space-4);}.m-5{margin:var(--space-5);}.m-6{margin:var(--space-6);}.m-8{margin:var(--space-8);}.m-auto{margin:auto;}.mx-auto{margin-left:auto;margin-right:auto;}.my-auto{margin-top:auto;margin-bottom:auto;}.p-0{padding:var(--space-0);}.p-1{padding:var(--space-1);}.p-2{padding:var(--space-2);}.p-3{padding:var(--space-3);}.p-4{padding:var(--space-4);}.p-5{padding:var(--space-5);}.p-6{padding:var(--space-6);}.p-8{padding:var(--space-8);}.text-xs{font-size:0.75rem;line-height:1rem;}.text-sm{font-size:0.875rem;line-height:1.25rem;}.text-base{font-size:1rem;line-height:1.5rem;}.text-lg{font-size:1.125rem;line-height:1.75rem;}.text-xl{font-size:1.25rem;line-height:1.75rem;}.text-2xl{font-size:1.5rem;line-height:2rem;}.text-3xl{font-size:1.875rem;line-height:2.25rem;}.text-4xl{font-size:2.25rem;line-height:2.5rem;}.text-5xl{font-size:3rem;line-height:1;}.font-light{font-weight:300;}.font-normal{font-weight:400;}.font-medium{font-weight:500;}.font-semibold{font-weight:600;}.font-bold{font-weight:700;}.font-extrabold{font-weight:800;}.text-left{text-align:left;}.text-center{text-align:center;}.text-right{text-align:right;}.text-justify{text-align:justify;}.text-primary{color:var(--color-primary);}.text-secondary{color:var(--color-secondary);}.text-success{color:var(--color-success);}.text-warning{color:var(--color-warning);}.text-error{color:var(--color-error);}.text-neutral{color:var(--color-neutral);}.text-white{color:#ffffff;}.text-black{color:#000000;}.bg-primary{background-color:var(--color-primary);}.bg-secondary{background-color:var(--color-secondary);}.bg-success{background-color:var(--color-success);}.bg-warning{background-color:var(--color-warning);}.bg-error{background-color:var(--color-error);}.bg-neutral{background-color:var(--color-neutral);}.bg-white{background-color:#ffffff;}.bg-black{background-color:#000000;}.border-0{border-width:0px;}.border{border-width:1px;}.border-2{border-width:2px;}.border-4{border-width:4px;}.border-solid{border-style:solid;}.border-dashed{border-style:dashed;}.border-dotted{border-style:dotted;}.border-neutral{border-color:var(--color-neutral);}.rounded-none{border-radius:var(--radius-none);}.rounded-sm{border-radius:var(--radius-sm);}.rounded-md{border-radius:var(--radius-md);}.rounded-lg{border-radius:var(--radius-lg);}.rounded-xl{border-radius:var(--radius-xl);}.rounded-2xl{border-radius:var(--radius-2xl);}.rounded-3xl{border-radius:var(--radius-3xl);}.rounded-full{border-radius:var(--radius-full);}.shadow-none{box-shadow:none;}.shadow-sm{box-shadow:var(--shadow-sm);}.shadow-md{box-shadow:var(--shadow-md);}.shadow-lg{box-shadow:var(--shadow-lg);}.shadow-xl{box-shadow:var(--shadow-xl);}.shadow-2xl{box-shadow:var(--shadow-2xl);}.static{position:static;}.fixed{position:fixed;}.absolute{position:absolute;}.relative{position:relative;}.sticky{position:sticky;}.inset-0{inset:0px;}.top-0{top:0px;}.right-0{right:0px;}.bottom-0{bottom:0px;}.left-0{left:0px;}.w-auto{width:auto;}.w-full{width:100%;}.w-screen{width:100vw;}.w-fit{width:fit-content;}.h-auto{height:auto;}.h-full{height:100%;}.h-screen{height:100vh;}.h-fit{height:fit-content;}.transition-none{transition-property:none;}.transition-all{transition-property:all;transition-timing-function:var(--ease-in-out);transition-duration:var(--duration-150);}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:var(--ease-in-out);transition-duration:var(--duration-150);}.scale-95{transform:scale(0.95);}.scale-100{transform:scale(1);}.scale-105{transform:scale(1.05);}.scale-110{transform:scale(1.1);}.rotate-0{transform:rotate(0deg);}.rotate-45{transform:rotate(45deg);}.rotate-90{transform:rotate(90deg);}.rotate-180{transform:rotate(180deg);}.cursor-pointer{cursor:pointer;}.cursor-default{cursor:default;}.cursor-not-allowed{cursor:not-allowed;}.select-none{user-select:none;}.select-text{user-select:text;}.select-all{user-select:all;}.pointer-events-none{pointer-events:none;}.pointer-events-auto{pointer-events:auto;}.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;}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;}@media (max-width:639px){.q-sm\:block{display:block;}.q-sm\:hidden{display:none;}.q-sm\:text-center{text-align:center;}.q-sm\:flex-col{flex-direction:column;}}@media (min-width:640px){.q-md\:block{display:block;}.q-md\:hidden{display:none;}.q-md\:flex-row{flex-direction:row;}}@media (min-width:768px){.q-lg\:block{display:block;}.q-lg\:hidden{display:none;}.q-lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}}@media (min-width:1024px){.q-xl\:block{display:block;}.q-xl\:hidden{display:none;}.q-xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}}@media (min-width:1280px){.q-2xl\:block{display:block;}.q-2xl\:hidden{display:none;}.q-2xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}}.q-card{background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);border:1px solid var(--color-neutral);transition:var(--duration-200) all var(--ease-in-out);}.q-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);}.q-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-weight:500;font-size:0.875rem;line-height:1.25rem;transition:all var(--duration-150) var(--ease-in-out);cursor:pointer;border:none;text-decoration:none;position:relative;overflow:hidden;}.q-btn:disabled{opacity:0.5;cursor:not-allowed;}.q-btn-primary{background-color:var(--color-primary);color:white;}.q-btn-primary:hover:not(:disabled){background-color:var(--color-primary-600);transform:translateY(-1px);box-shadow:var(--shadow-md);}.q-btn-secondary{background-color:var(--color-neutral);color:white;}.q-btn-outline{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary);}.q-btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:white;}.q-input{display:block;width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-neutral);border-radius:var(--radius-md);font-size:0.875rem;line-height:1.25rem;transition:all var(--duration-150) var(--ease-in-out);background-color:white;}.q-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(59,130,246,0.1);}.q-input-error{border-color:var(--color-error);}.q-input-error:focus{box-shadow:0 0 0 3px rgba(239,68,68,0.1);}.q-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:0.75rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;}.q-badge-primary{background-color:var(--color-primary-100);color:var(--color-primary-800);}.q-badge-success{background-color:#dcfce7;color:#166534;}.q-badge-warning{background-color:#fef3c7;color:#92400e;}.q-badge-error{background-color:#fee2e2;color:#991b1b;}.q-center{display:flex;align-items:center;justify-content:center;}.q-stack{display:flex;flex-direction:column;gap:var(--space-4);}.q-cluster{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-start;}.q-switcher{display:flex;flex-wrap:wrap;gap:var(--space-2);}.q-sidebar{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);}.q-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}.q-frame{position:relative;overflow:hidden;}.q-space-y > * + *{margin-top:var(--space-4);}.q-space-y-2 > * + *{margin-top:var(--space-2);}.q-space-y-6 > * + *{margin-top:var(--space-6);}.q-space-x > * + *{margin-left:var(--space-4);}.q-space-x-2 > * + *{margin-left:var(--space-2);}.q-space-x-6 > * + *{margin-left:var(--space-6);}.q-animate-fade-in{animation:fadeIn var(--duration-300) var(--ease-out);}.q-animate-slide-up{animation:slideUp var(--duration-300) var(--ease-out);}.q-animate-slide-down{animation:slideDown var(--duration-300) var(--ease-out);}.q-animate-scale-in{animation:scaleIn var(--duration-200) var(--ease-out);}.q-animate-spin{animation:spin 1s linear infinite;}.q-animate-ping{animation:ping 1s cubic-bezier(0,0,0.2,1) infinite;}.q-animate-pulse{animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;}.q-animate-bounce{animation:bounce 1s infinite;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes slideUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}@keyframes slideDown{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:translateY(0);}}@keyframes scaleIn{from{opacity:0;transform:scale(0.95);}to{opacity:1;transform:scale(1);}}@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}@keyframes ping{75%,100%{transform:scale(2);opacity:0;}}@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.5;}}@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{transform:none;animation-timing-function:cubic-bezier(0,0,0.2,1);}}.q-hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}.q-hover-scale:hover{transform:scale(1.05);}.q-hover-rotate:hover{transform:rotate(1deg);}.q-hover-glow:hover{box-shadow:0 0 20px rgba(59,130,246,0.5);}.q-active:active{transform:scale(0.98);}.q-focus-ring:focus{outline:2px solid var(--color-primary);outline-offset:2px;}.q-required::after{content:" *";color:var(--color-error);}.q-disabled{opacity:0.5;cursor:not-allowed;pointer-events:none;}.q-loading{position:relative;overflow:hidden;}.q-loading::after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient( 90deg,transparent,rgba(255,255,255,0.2),transparent );animation:loading 1.5s infinite;}@keyframes loading{to{left:100%;}}.q-success{border-color:var(--color-success) !important;box-shadow:0 0 0 3px rgba(16,185,129,0.1) !important;}.q-warning{border-color:var(--color-warning) !important;box-shadow:0 0 0 3px rgba(245,158,11,0.1) !important;}.q-error{border-color:var(--color-error) !important;box-shadow:0 0 0 3px rgba(239,68,68,0.1) !important;}.q-info{border-color:var(--color-primary) !important;box-shadow:0 0 0 3px rgba(59,130,246,0.1) !important;}@media (prefers-color-scheme:dark){.q-card{background-color:#1f2937;border-color:#374151;}.q-input{background-color:#1f2937;border-color:#374151;color:#f9fafb;}.q-dark\:text-white{color:#ffffff !important;}.q-dark\:bg-gray-800{background-color:#1f2937 !important;}.q-dark\:bg-gray-900{background-color:#111827 !important;}.q-dark\:border-gray-700{border-color:#374151 !important;}}@media print{.q-print-hidden{display:none !important;}.q-print-block{display:block !important;}.q-no-shadow{box-shadow:none !important;}.q-black-text{color:black !important;}}.q-prose{max-width:65ch;line-height:1.75;}.q-prose h1{font-size:2.25rem;font-weight:700;line-height:1.25;margin-bottom:1rem;}.q-prose h2{font-size:1.875rem;font-weight:600;line-height:1.25;margin-top:2rem;margin-bottom:1rem;}.q-prose p{margin-bottom:1rem;}.q-prose a{color:var(--color-primary);text-decoration:underline;}.q-prose a:hover{color:var(--color-primary-600);}.q-will-change-transform{will-change:transform;}.q-will-change-opacity{will-change:opacity;}.q-gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px;}@container (min-width:320px){.q-cq-sm\:flex{display:flex;}}@container (min-width:640px){.q-cq-md\:grid{display:grid;}}@container (min-width:1024px){.q-cq-lg\:block{display:block;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}}@media (prefers-contrast:high){.q-card{border-width:2px;}.q-btn{border:2px solid;}}.q-focus-visible:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}.q-backdrop-blur-sm{backdrop-filter:blur(4px);}.q-backdrop-blur{backdrop-filter:blur(8px);}.q-backdrop-blur-md{backdrop-filter:blur(12px);}.q-backdrop-blur-lg{backdrop-filter:blur(16px);}.q-text-shadow-sm{text-shadow:0 1px 2px rgba(0,0,0,0.05);}.q-text-shadow{text-shadow:0 1px 3px rgba(0,0,0,0.1);}.q-text-shadow-lg{text-shadow:0 4px 6px rgba(0,0,0,0.1);}.q-gradient-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-600) 100%);}.q-gradient-secondary{background:linear-gradient(135deg,var(--color-secondary) 0%,#475569 100%);}.q-gradient-radial{background:radial-gradient(circle at center,var(--color-primary) 0%,var(--color-primary-600) 100%);}.q-gradient-text{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-600) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.q-scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--color-neutral) transparent;}.q-scrollbar-thin::-webkit-scrollbar{width:6px;}.q-scrollbar-thin::-webkit-scrollbar-track{background:transparent;}.q-scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--color-neutral);border-radius:3px;}.q-scrollbar-none{-ms-overflow-style:none;scrollbar-width:none;}.q-scrollbar-none::-webkit-scrollbar{display:none;}::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{background:var(--color-starlight-deep);}body.light-mode::-webkit-scrollbar-track{background:var(--light-bg);}::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,var(--color-starlight-peach),var(--color-starlight-blue));border-radius:10px;border:2px solid var(--color-starlight-deep);}body.light-mode::-webkit-scrollbar-thumb{border-color:var(--light-bg);}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-starlight-deep),0 0 0 4px var(--color-starlight-blue);transition:box-shadow var(--transition-fast);}body.light-mode:focus-visible{box-shadow:0 0 0 2px var(--light-bg),0 0 0 4px var(--color-starlight-blue);}body{margin:0;min-height:100vh;background-color:var(--color-starlight-deep);color:var(--text-primary);transition:background-color var(--transition-slow),color var(--transition-slow);}body.light-mode{background-color:var(--light-bg);color:var(--light-text);--text-primary:var(--light-text);--text-secondary:var(--light-text-muted);--text-muted:var(--light-text-muted);}button:active,input:active,.active-scale:active{transform:scale(0.96);}@custom-media --sm (min-width:640px);@custom-media --md (min-width:768px);@custom-media --lg (min-width:1024px);@custom-media --xl (min-width:1280px);@custom-media --2xl (min-width:1536px);@container (min-width:320px){.container\:flex{display:flex;}.container\:grid{display:grid;}.container\:hidden{display:none;}}@container (min-width:640px){.container\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.container\:text-lg{font-size:1.125rem;line-height:1.75rem;}.container\:p-6{padding:var(--space-6);}}@container (min-width:768px){.container\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.container\:text-xl{font-size:1.25rem;line-height:1.75rem;}.container\:p-8{padding:var(--space-8);}}@container (min-width:1024px){.container\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}.container\:text-2xl{font-size:1.5rem;line-height:2rem;}}@media (--sm){.sm\:block{display:block;}.sm\:inline-block{display:inline-block;}.sm\:inline{display:inline;}.sm\:flex{display:flex;}.sm\:grid{display:grid;}.sm\:hidden{display:none;}.sm\:flex-row{flex-direction:row;}.sm\:flex-col{flex-direction:column;}.sm\:items-start{align-items:flex-start;}.sm\:items-center{align-items:center;}.sm\:items-end{align-items:flex-end;}.sm\:justify-start{justify-content:flex-start;}.sm\:justify-center{justify-content:center;}.sm\:justify-end{justify-content:flex-end;}.sm\:justify-between{justify-content:space-between;}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.sm\:text-xs{font-size:0.75rem;line-height:1rem;}.sm\:text-sm{font-size:0.875rem;line-height:1.25rem;}.sm\:text-base{font-size:1rem;line-height:1.5rem;}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem;}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem;}.sm\:text-2xl{font-size:1.5rem;line-height:2rem;}.sm\:m-0{margin:var(--space-0);}.sm\:m-1{margin:var(--space-1);}.sm\:m-2{margin:var(--space-2);}.sm\:m-3{margin:var(--space-3);}.sm\:m-4{margin:var(--space-4);}.sm\:m-6{margin:var(--space-6);}.sm\:m-8{margin:var(--space-8);}.sm\:mx-auto{margin-left:auto;margin-right:auto;}.sm\:p-0{padding:var(--space-0);}.sm\:p-1{padding:var(--space-1);}.sm\:p-2{padding:var(--space-2);}.sm\:p-3{padding:var(--space-3);}.sm\:p-4{padding:var(--space-4);}.sm\:p-6{padding:var(--space-6);}.sm\:p-8{padding:var(--space-8);}.sm\:w-full{width:100%;}.sm\:w-auto{width:auto;}.sm\:h-full{height:100%;}.sm\:h-auto{height:auto;}}@media (--md){.md\:block{display:block;}.md\:inline-block{display:inline-block;}.md\:inline{display:inline;}.md\:flex{display:flex;}.md\:grid{display:grid;}.md\:hidden{display:none;}.md\:flex-row{flex-direction:row;}.md\:flex-col{flex-direction:column;}.md\:items-start{align-items:flex-start;}.md\:items-center{align-items:center;}.md\:items-end{align-items:flex-end;}.md\:justify-start{justify-content:flex-start;}.md\:justify-center{justify-content:center;}.md\:justify-end{justify-content:flex-end;}.md\:justify-between{justify-content:space-between;}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}.md\:text-xs{font-size:0.75rem;line-height:1rem;}.md\:text-sm{font-size:0.875rem;line-height:1.25rem;}.md\:text-base{font-size:1rem;line-height:1.5rem;}.md\:text-lg{font-size:1.125rem;line-height:1.75rem;}.md\:text-xl{font-size:1.25rem;line-height:1.75rem;}.md\:text-2xl{font-size:1.5rem;line-height:2rem;}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem;}.md\:m-0{margin:var(--space-0);}.md\:m-1{margin:var(--space-1);}.md\:m-2{margin:var(--space-2);}.md\:m-3{margin:var(--space-3);}.md\:m-4{margin:var(--space-4);}.md\:m-6{margin:var(--space-6);}.md\:m-8{margin:var(--space-8);}.md\:m-12{margin:var(--space-12);}.md\:mx-auto{margin-left:auto;margin-right:auto;}.md\:p-0{padding:var(--space-0);}.md\:p-1{padding:var(--space-1);}.md\:p-2{padding:var(--space-2);}.md\:p-3{padding:var(--space-3);}.md\:p-4{padding:var(--space-4);}.md\:p-6{padding:var(--space-6);}.md\:p-8{padding:var(--space-8);}.md\:p-12{padding:var(--space-12);}.md\:w-full{width:100%;}.md\:w-auto{width:auto;}.md\:w-1\/2{width:50%;}.md\:w-1\/3{width:33.333333%;}.md\:w-2\/3{width:66.666667%;}.md\:w-1\/4{width:25%;}.md\:w-3\/4{width:75%;}.md\:h-full{height:100%;}.md\:h-auto{height:auto;}.md\:h-screen{height:100vh;}}@media (--lg){.lg\:block{display:block;}.lg\:inline-block{display:inline-block;}.lg\:inline{display:inline;}.lg\:flex{display:flex;}.lg\:grid{display:grid;}.lg\:hidden{display:none;}.lg\:flex-row{flex-direction:row;}.lg\:flex-col{flex-direction:column;}.lg\:items-start{align-items:flex-start;}.lg\:items-center{align-items:center;}.lg\:items-end{align-items:flex-end;}.lg\:items-stretch{align-items:stretch;}.lg\:justify-start{justify-content:flex-start;}.lg\:justify-center{justify-content:center;}.lg\:justify-end{justify-content:flex-end;}.lg\:justify-between{justify-content:space-between;}.lg\:justify-around{justify-content:space-around;}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr));}.lg\:text-xs{font-size:0.75rem;line-height:1rem;}.lg\:text-sm{font-size:0.875rem;line-height:1.25rem;}.lg\:text-base{font-size:1rem;line-height:1.5rem;}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem;}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem;}.lg\:text-2xl{font-size:1.5rem;line-height:2rem;}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem;}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem;}.lg\:m-0{margin:var(--space-0);}.lg\:m-1{margin:var(--space-1);}.lg\:m-2{margin:var(--space-2);}.lg\:m-3{margin:var(--space-3);}.lg\:m-4{margin:var(--space-4);}.lg\:m-6{margin:var(--space-6);}.lg\:m-8{margin:var(--space-8);}.lg\:m-12{margin:var(--space-12);}.lg\:m-16{margin:var(--space-16);}.lg\:mx-auto{margin-left:auto;margin-right:auto;}.lg\:p-0{padding:var(--space-0);}.lg\:p-1{padding:var(--space-1);}.lg\:p-2{padding:var(--space-2);}.lg\:p-3{padding:var(--space-3);}.lg\:p-4{padding:var(--space-4);}.lg\:p-6{padding:var(--space-6);}.lg\:p-8{padding:var(--space-8);}.lg\:p-12{padding:var(--space-12);}.lg\:p-16{padding:var(--space-16);}.lg\:w-full{width:100%;}.lg\:w-auto{width:auto;}.lg\:w-1\/2{width:50%;}.lg\:w-1\/3{width:33.333333%;}.lg\:w-2\/3{width:66.666667%;}.lg\:w-1\/4{width:25%;}.lg\:w-3\/4{width:75%;}.lg\:w-1\/5{width:20%;}.lg\:w-2\/5{width:40%;}.lg\:w-3\/5{width:60%;}.lg\:w-4\/5{width:80%;}.lg\:h-full{height:100%;}.lg\:h-auto{height:auto;}.lg\:h-screen{height:100vh;}}@media (--xl){.xl\:block{display:block;}.xl\:inline-block{display:inline-block;}.xl\:inline{display:inline;}.xl\:flex{display:flex;}.xl\:grid{display:grid;}.xl\:hidden{display:none;}.xl\:flex-row{flex-direction:row;}.xl\:flex-col{flex-direction:column;}.xl\:items-start{align-items:flex-start;}.xl\:items-center{align-items:center;}.xl\:items-end{align-items:flex-end;}.xl\:items-stretch{align-items:stretch;}.xl\:justify-start{justify-content:flex-start;}.xl\:justify-center{justify-content:center;}.xl\:justify-end{justify-content:flex-end;}.xl\:justify-between{justify-content:space-between;}.xl\:justify-around{justify-content:space-around;}.xl\:justify-evenly{justify-content:space-evenly;}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr));}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr));}.xl\:text-xs{font-size:0.75rem;line-height:1rem;}.xl\:text-sm{font-size:0.875rem;line-height:1.25rem;}.xl\:text-base{font-size:1rem;line-height:1.5rem;}.xl\:text-lg{font-size:1.125rem;line-height:1.75rem;}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem;}.xl\:text-2xl{font-size:1.5rem;line-height:2rem;}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem;}.xl\:text-4xl{font-size:2.25rem;line-height:2.5rem;}.xl\:text-5xl{font-size:3rem;line-height:1;}.xl\:m-0{margin:var(--space-0);}.xl\:m-1{margin:var(--space-1);}.xl\:m-2{margin:var(--space-2);}.xl\:m-3{margin:var(--space-3);}.xl\:m-4{margin:var(--space-4);}.xl\:m-6{margin:var(--space-6);}.xl\:m-8{margin:var(--space-8);}.xl\:m-12{margin:var(--space-12);}.xl\:m-16{margin:var(--space-16);}.xl\:m-20{margin:var(--space-20);}.xl\:mx-auto{margin-left:auto;margin-right:auto;}.xl\:p-0{padding:var(--space-0);}.xl\:p-1{padding:var(--space-1);}.xl\:p-2{padding:var(--space-2);}.xl\:p-3{padding:var(--space-3);}.xl\:p-4{padding:var(--space-4);}.xl\:p-6{padding:var(--space-6);}.xl\:p-8{padding:var(--space-8);}.xl\:p-12{padding:var(--space-12);}.xl\:p-16{padding:var(--space-16);}.xl\:p-20{padding:var(--space-20);}.xl\:w-full{width:100%;}.xl\:w-auto{width:auto;}.xl\:w-1\/2{width:50%;}.xl\:w-1\/3{width:33.333333%;}.xl\:w-2\/3{width:66.666667%;}.xl\:w-1\/4{width:25%;}.xl\:w-3\/4{width:75%;}.xl\:w-1\/5{width:20%;}.xl\:w-2\/5{width:40%;}.xl\:w-3\/5{width:60%;}.xl\:w-4\/5{width:80%;}.xl\:h-full{height:100%;}.xl\:h-auto{height:auto;}.xl\:h-screen{height:100vh;}}@media (orientation:landscape){.landscape\:flex-row{flex-direction:row;}.landscape\:hidden{display:none;}}@media (orientation:portrait){.portrait\:flex-col{flex-direction:column;}.portrait\:hidden{display:none;}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.retina\:text-sm{font-size:0.875rem;line-height:1.25rem;}.retina\:border{border-width:0.5px;}}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none;}}@media (prefers-color-scheme:dark){.dark\:text-white{color:#ffffff;}.dark\:text-gray-200{color:#e5e7eb;}.dark\:text-gray-300{color:#d1d5db;}.dark\:bg-gray-900{background-color:#111827;}.dark\:bg-gray-800{background-color:#1f2937;}.dark\:bg-gray-700{background-color:#374151;}.dark\:border-gray-700{border-color:#374151;}.dark\:border-gray-600{border-color:#4b5563;}}@media (prefers-color-scheme:light){.light\:text-black{color:#000000;}.light\:text-gray-800{color:#1f2937;}.light\:text-gray-700{color:#374151;}.light\:bg-white{background-color:#ffffff;}.light\:bg-gray-50{background-color:#f9fafb;}.light\:bg-gray-100{background-color:#f3f4f6;}.light\:border-gray-300{border-color:#d1d5db;}.light\:border-gray-200{border-color:#e5e7eb;}}.hover\:text-primary:hover{color:var(--color-primary);}.hover\:text-secondary:hover{color:var(--color-secondary);}.hover\:text-white:hover{color:#ffffff;}.hover\:text-black:hover{color:#000000;}.hover\:bg-primary:hover{background-color:var(--color-primary);}.hover\:bg-secondary:hover{background-color:var(--color-secondary);}.hover\:bg-gray-100:hover{background-color:#f3f4f6;}.hover\:bg-gray-200:hover{background-color:#e5e7eb;}.hover\:border-primary:hover{border-color:var(--color-primary);}.hover\:border-secondary:hover{border-color:var(--color-secondary);}.hover\:shadow-lg:hover{box-shadow:var(--shadow-lg);}.hover\:shadow-xl:hover{box-shadow:var(--shadow-xl);}.hover\:scale-105:hover{transform:scale(1.05);}.hover\:scale-110:hover{transform:scale(1.1);}.hover\:scale-95:hover{transform:scale(0.95);}.hover\:rotate-90:hover{transform:rotate(90deg);}.hover\:rotate-180:hover{transform:rotate(180deg);}.hover\:opacity-75:hover{opacity:0.75;}.hover\:opacity-50:hover{opacity:0.5;}.hover\:opacity-100:hover{opacity:1;}.focus\:outline-none:focus{outline:none;}.focus\:outline:focus{outline:2px solid;outline-offset:2px;}.focus\:outline-primary:focus{outline-color:var(--color-primary);}.focus\:outline-secondary:focus{outline-color:var(--color-secondary);}.focus\:ring:focus{box-shadow:0 0 0 3px;}.focus\:ring-primary:focus{box-shadow:0 0 0 3px var(--color-primary);}.focus\:ring-secondary:focus{box-shadow:0 0 0 3px var(--color-secondary);}.focus\:border-primary:focus{border-color:var(--color-primary);}.focus\:border-secondary:focus{border-color:var(--color-secondary);}.active\:scale-95:active{transform:scale(0.95);}.active\:scale-90:active{transform:scale(0.9);}.active\:bg-primary:active{background-color:var(--color-primary);}.active\:bg-secondary:active{background-color:var(--color-secondary);}.disabled\:opacity-50:disabled{opacity:0.5;}.disabled\:opacity-75:disabled{opacity:0.75;}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed;}.disabled\:pointer-events-none:disabled{pointer-events:none;}.group:hover .group-hover\:text-primary{color:var(--color-primary);}.group:hover .group-hover\:text-white{color:#ffffff;}.group:hover .group-hover\:bg-primary{background-color:var(--color-primary);}.group:hover .group-hover\:bg-secondary{background-color:var(--color-secondary);}.group:hover .group-hover\:opacity-100{opacity:1;}.group:hover .group-hover\:scale-110{transform:scale(1.1);}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:500;transition:all var(--duration-150) var(--ease-in-out);cursor:pointer;border:1px solid transparent;text-decoration:none;font-family:inherit;}.btn:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none;}.btn-primary{background-color:var(--color-primary);color:white;border-color:var(--color-primary);}.btn-primary:hover{background-color:var(--color-primary-600);border-color:var(--color-primary-600);}.btn-secondary{background-color:var(--color-secondary);color:white;border-color:var(--color-secondary);}.btn-secondary:hover{background-color:var(--color-secondary-600);border-color:var(--color-secondary-600);}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary);}.btn-outline:hover{background-color:var(--color-primary);color:white;}.btn-ghost{background-color:transparent;color:var(--color-primary);border-color:transparent;}.btn-ghost:hover{background-color:var(--color-primary-100);}.btn-sm{padding:var(--space-1) var(--space-3);font-size:0.875rem;}.btn-lg{padding:var(--space-3) var(--space-6);font-size:1.125rem;}.btn-xl{padding:var(--space-4) var(--space-8);font-size:1.25rem;}.card{background-color:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--duration-200) var(--ease-in-out);}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);}.card-header{padding:var(--space-6);border-bottom:1px solid #e5e7eb;}.card-body{padding:var(--space-6);}.card-footer{padding:var(--space-6);border-top:1px solid #e5e7eb;background-color:#f9fafb;}.input{display:block;width:100%;padding:var(--space-2) var(--space-3);border:1px solid #d1d5db;border-radius:var(--radius-md);background-color:white;font-size:1rem;transition:all var(--duration-150) var(--ease-in-out);}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary);}.input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed;}.input-error{border-color:var(--color-error);}.input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error);}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:0.75rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;}.badge-primary{background-color:var(--color-primary-100);color:var(--color-primary-800);}.badge-secondary{background-color:#e5e7eb;color:#374151;}.badge-success{background-color:#d1fae5;color:#065f46;}.badge-warning{background-color:#fed7aa;color:#92400e;}.badge-error{background-color:#fee2e2;color:#991b1b;}.alert{padding:var(--space-4);border-radius:var(--radius-md);border:1px solid;}.alert-success{background-color:#d1fae5;border-color:#6ee7b7;color:#065f46;}.alert-warning{background-color:#fed7aa;border-color:#fbbf24;color:#92400e;}.alert-error{background-color:#fee2e2;border-color:#f87171;color:#991b1b;}.alert-info{background-color:#dbeafe;border-color:#60a5fa;color:#1e40af;}.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:50;}.modal-content{background-color:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-2xl);max-width:90vw;max-height:90vh;overflow-y:auto;}.spinner{display:inline-block;width:1.5rem;height:1.5rem;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 1s linear infinite;}@keyframes spin{to{transform:rotate(360deg);}}.spinner-sm{width:1rem;height:1rem;}.spinner-lg{width:2rem;height:2rem;}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:var(--radius-md);}@keyframes loading{0%{background-position:200% 0;}100%{background-position:-200% 0;}}.tooltip{position:relative;}.tooltip-content{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background-color:#1f2937;color:white;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:0.875rem;white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--duration-150) var(--ease-in-out);z-index:10;margin-bottom:var(--space-1);}.tooltip:hover .tooltip-content{opacity:1;visibility:visible;}.dropdown{position:relative;display:inline-block;}.dropdown-content{position:absolute;top:100%;left:0;background-color:white;border:1px solid #e5e7eb;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;z-index:20;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--duration-150) var(--ease-in-out);}.dropdown.active .dropdown-content{opacity:1;visibility:visible;transform:translateY(0);}.dropdown-item{display:block;width:100%;padding:var(--space-2) var(--space-3);text-align:left;background:none;border:none;cursor:pointer;transition:background-color var(--duration-150) var(--ease-in-out);}.dropdown-item:hover{background-color:#f3f4f6;}.accordion-item{border:1px solid #e5e7eb;border-radius:var(--radius-md);margin-bottom:var(--space-2);overflow:hidden;}.accordion-header{padding:var(--space-4);background-color:#f9fafb;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background-color var(--duration-150) var(--ease-in-out);}.accordion-header:hover{background-color:#f3f4f6;}.accordion-content{padding:var(--space-4);background-color:white;max-height:0;overflow:hidden;transition:max-height var(--duration-300) var(--ease-in-out);}.accordion-item.active .accordion-content{max-height:500px;}.accordion-item.active .accordion-icon{transform:rotate(180deg);}.accordion-icon{transition:transform var(--duration-300) var(--ease-in-out);}.tab-list{display:flex;border-bottom:1px solid #e5e7eb;}.tab-button{padding:var(--space-2) var(--space-4);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;transition:all var(--duration-150) var(--ease-in-out);}.tab-button:hover{background-color:#f3f4f6;}.tab-button.active{border-bottom-color:var(--color-primary);color:var(--color-primary);}.tab-content{padding:var(--space-4);}.tab-panel{display:none;}.tab-panel.active{display:block;}.progress{width:100%;height:0.5rem;background-color:#e5e7eb;border-radius:var(--radius-full);overflow:hidden;}.progress-bar{height:100%;background-color:var(--color-primary);transition:width var(--duration-300) var(--ease-in-out);}.toggle{position:relative;display:inline-block;width:3rem;height:1.5rem;}.toggle-input{opacity:0;width:0;height:0;}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;transition:background-color var(--duration-150) var(--ease-in-out);border-radius:var(--radius-full);}.toggle-slider:before{position:absolute;content:"";height:1.25rem;width:1.25rem;left:0.125rem;bottom:0.125rem;background-color:white;transition:transform var(--duration-150) var(--ease-in-out);border-radius:50%;}.toggle-input:checked + .toggle-slider{background-color:var(--color-primary);}.toggle-input:checked + .toggle-slider:before{transform:translateX(1.5rem);}.animate-pulse{animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;}@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.5;}}.animate-bounce{animation:bounce 1s infinite;}@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{transform:none;animation-timing-function:cubic-bezier(0,0,0.2,1);}}.animate-fade-in{animation:fadeIn var(--duration-500) var(--ease-in-out);}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}.animate-slide-up{animation:slideUp var(--duration-300) var(--ease-out);}@keyframes slideUp{from{transform:translateY(20px);opacity:0;}to{transform:translateY(0);opacity:1;}}.animate-slide-down{animation:slideDown var(--duration-300) var(--ease-out);}@keyframes slideDown{from{transform:translateY(-20px);opacity:0;}to{transform:translateY(0);opacity:1;}}.container{max-width:1100px;margin:0 auto;padding:0 var(--space-8);}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-8);}.starlight-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-10);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);position:relative;z-index:1;transition:border-color var(--transition-base),transform var(--transition-base),background-color var(--transition-base);}.starlight-card:hover{border-color:rgba(0,212,255,0.3);}.starlight-card.has-open-menu{z-index:1000;}body.light-mode .starlight-card{background:var(--light-card-bg);border-color:var(--light-card-border);color:#334155;box-shadow:0 4px 20px rgba(0,0,0,0.02);}.checkbox-starlight,.radio-starlight{appearance:none;width:1.25rem;height:1.25rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.2);border-radius:0.375rem;cursor:pointer;transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:center;position:relative;}.radio-starlight{border-radius:50%;}.checkbox-starlight:checked,.radio-starlight:checked{background:var(--color-starlight-blue);border-color:var(--color-starlight-blue);}.checkbox-starlight:checked::after{content:'✓';color:black;font-size:0.8rem;font-weight:900;}.radio-starlight:checked::after{content:'';width:0.5rem;height:0.5rem;background:black;border-radius:50%;}body.light-mode .checkbox-starlight,body.light-mode .radio-starlight{background:#f1f5f9;border-color:#cbd5e1;}.has-tooltip{position:relative;}.has-tooltip:hover{z-index:2000;}.has-tooltip:hover .tooltip{opacity:1;transform:translateX(-50%) translateY(-10px);}body.light-mode .tooltip{background-color:#ffffff;border-color:var(--color-starlight-blue);color:var(--light-text);}.skeleton{animation:shimmer 2s infinite;}@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}body.light-mode .skeleton{background-color:#cbd5e1;background-image:linear-gradient(90deg,transparent,#f1f5f9,transparent);}.stars-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:hidden;}.star{position:absolute;background:white;border-radius:50%;opacity:0.3;animation:twinkle var(--duration) infinite ease-in-out;}@keyframes twinkle{0%,100%{opacity:0.3;transform:scale(1);}50%{opacity:1;transform:scale(1.2);}}select option{background-color:#1a1a2e;color:var(--text-primary);}body.light-mode select option{background-color:white;color:var(--light-text);}body.light-mode .input-starlight{background-color:#ffffff;border-color:#cbd5e1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23475569'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 9l4 4 4-4' /%3E%3C/svg%3E");background-repeat:no-repeat;}body.light-mode .btn-secondary{border-color:#cbd5e1;}body.light-mode .dialog-overlay{background:rgba(255,255,255,0.4);}body.light-mode .dialog-content{background-color:rgba(255,255,255,0.98);border-color:rgba(0,0,0,0.1);color:var(--light-text);box-shadow:0 25px 50px -12px rgba(0,0,0,0.15);}body.light-mode .dropdown-menu{background-color:rgba(255,255,255,0.99);border-color:#cbd5e1;box-shadow:0 10px 30px rgba(0,0,0,0.1);}body.light-mode .dropdown-item{color:#475569;}.dropdown-item:hover{background-color:var(--color-starlight-blue) !important;color:#000000 !important;}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb;}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Inter,ui-sans-serif,system-ui,sans-serif;}body{margin:0;line-height:inherit;}img{display:block;max-width:100%;height:auto;}button{cursor:pointer;background:transparent;padding:0;color:inherit;font:inherit;}.block{display:block;}.shadow{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);}.rounded{border-radius:0.25rem;}.border{border-width:1px;}.gap{gap:0px;}.grid{display:grid;}.grid-template-columns{display:grid;}.flex{display:flex;}.flex-direction{display:flex;}.inline-block{display:inline-block;}.items-center{align-items:center;}.items-start{align-items:flex-start;}.flex-start{display:flex;}.items-end{align-items:flex-end;}.flex-end{display:flex;}.justify-center{justify-content:center;}.justify-between{justify-content:space-between;}.justify-start{justify-content:flex-start;}.justify-end{justify-content:flex-end;}.flex-col{flex-direction:column;}.flex-grow{flex-grow:1;}.flex-wrap{flex-wrap:wrap;}.w-full{width:100%;}.h-full{height:100%;}.max-w-prose{max-width:65ch;}.min-h-screen{min-height:100vh;}.font-bold{font-weight:700;}.font-medium{font-weight:500;}.font-light{font-weight:300;}.tracking-tighter{letter-spacing:-0.05em;}.tracking-tight{letter-spacing:-0.025em;}.text-center{text-align:center;}.text-left{text-align:left;}.text-right{text-align:right;}.rounded-full{border-radius:9999px;}.rounded-xl{border-radius:0.75rem;}.border-t{border-top-width:1px;}.border-b{border-bottom-width:1px;}.transition{transition:all 0.3s cubic-bezier(0.4,0,0.2,1);}.scale-105{transform:scale(1.05);}.active-scale{transform:scale(0.96);}.cursor-pointer{cursor:pointer;}.overflow-hidden{overflow:hidden;}.hidden{display:none;}.glass{background-color:rgba(255,255,255,0.03);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,0.1);box-shadow:0 8px 32px 0 rgba(0,0,0,0.37);}.glow-blue{box-shadow:0 0 30px rgba(0,212,255,0.25);}.glow-peach{box-shadow:0 0 30px rgba(255,179,138,0.2);}.bg-starlight{background:linear-gradient(135deg,#ffb38a 0%,#00d4ff 100%);}.text-gradient-starlight{background:linear-gradient(to right,#ffb38a,#00d4ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block;}.btn-starlight{background:linear-gradient(135deg,#ffb38a 0%,#00d4ff 100%);color:#000;border:none;box-shadow:0 0 20px rgba(0,212,255,0.3);font-weight:700;transition:all 0.2s ease;height:3rem;padding:0 1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:0.75rem;cursor:pointer;}.btn-secondary{background:rgba(255,255,255,0.05);color:inherit;border:1px solid rgba(255,255,255,0.15);font-weight:700;transition:all 0.2s ease;height:3rem;padding:0 1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:0.75rem;cursor:pointer;}.input-starlight{background-color:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.15);color:inherit;border-radius:0.75rem;padding:0 2.5rem 0 1rem;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.4)'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 9l4 4 4-4' /%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1rem;transition:all 0.2s ease;height:3rem;}.checkbox-starlight{appearance:none;width:1.25rem;height:1.25rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.2);border-radius:0.375rem;cursor:pointer;transition:all 0.2s ease;position:relative;display:inline-flex;align-items:center;justify-content:center;}.radio-starlight{appearance:none;width:1.25rem;height:1.25rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.2);border-radius:50%;cursor:pointer;transition:all 0.2s ease;position:relative;display:inline-flex;align-items:center;justify-content:center;}.dialog-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,0.6);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:400;}.dialog-content{background-color:rgba(10,10,20,0.98);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);border-radius:1.5rem;width:90%;max-width:600px;box-shadow:0 25px 50px -12px rgba(0,0,0,0.5);overflow:hidden;position:relative;}.dropdown-menu{background-color:rgba(15,15,30,0.98);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);border-radius:1rem;padding:0.5rem;box-shadow:0 20px 40px rgba(0,0,0,0.4);min-width:200px;z-index:600;margin-top:0.5rem;}.dropdown-item{padding:0.625rem 1rem;color:rgba(255,255,255,0.7);border-radius:0.625rem;display:block;width:100%;text-align:left;transition:all 0.2s;cursor:pointer;font-size:0.875rem;}.tooltip{position:absolute;bottom:125%;left:50%;transform:translateX(-50%);padding:0.5rem 0.75rem;background-color:rgba(10,10,30,0.98);backdrop-filter:blur(12px);border:1px solid rgba(0,212,255,0.3);border-radius:0.5rem;color:#f1f5f9;font-size:0.75rem;white-space:nowrap;pointer-events:none;opacity:0;transition:all 0.2s ease;z-index:800;box-shadow:0 4px 15px rgba(0,0,0,0.4);}.skeleton{background-color:rgba(255,255,255,0.1);background-image:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent);background-size:200% 100%;background-repeat:no-repeat;border-radius:0.5rem;width:100%;height:1rem;}.p-8{padding:2rem;}.bg-starlight-deep{background-color:#08081a;}.mx-auto{margin-left:auto;margin-right:auto;}.mb-20{margin-bottom:5rem;}.pt-16{padding-top:4rem;}.text-6xl{font-size:4.5rem;}.mb-6{margin-bottom:1.5rem;}.text-xl{font-size:1.25rem;}.text-gray-400{color:#9ca3af;}.mb-10{margin-bottom:2.5rem;}.gap-6{gap:1.5rem;}.text-black{color:#000000;}.px-10{padding-left:2.5rem;padding-right:2.5rem;}.py-4{padding-top:1rem;padding-bottom:1rem;}.hover\:bg-white:hover{background-color:#ffffff;}.text-white{color:#ffffff;}.text-sm{font-size:0.875rem;}.text-starlight{color:#00d4ff;}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}.gap-10{gap:2.5rem;}.p-10{padding:2.5rem;}.rounded-2xl{border-radius:0.25rem;}.text-2xl{font-size:1.5rem;}.mb-4{margin-bottom:1rem;}.bg-white{background-color:#ffffff;}.p-4{padding:1rem;}.border-white{border-color:#ffffff;}.py-3{padding-top:0.75rem;padding-bottom:0.75rem;}.p-12{padding:3rem;}.rounded-3xl{border-radius:0.375rem;}.text-4xl{font-size:2.5rem;}.text-lg{font-size:1.125rem;}.gap-4{gap:1rem;}.px-6{padding-left:1.5rem;padding-right:1.5rem;}.focus\:border-starlight:focus{border-color:#00d4ff;}.hover\:scale-105:hover{transform:scale(1.05);}.mt-32{margin-top:8rem;}.pt-10{padding-top:2.5rem;}.text-gray-500{color:#6b7280;}.mb-2{margin-bottom:0.5rem;}.text-muted{color:var(--text-muted);}.mb-8{margin-bottom:2rem;}.text-xs{font-size:0.75rem;}.px-8{padding-left:2rem;padding-right:2rem;}.pt-20{padding-top:5rem;}.pb-12{padding-bottom:3rem;}.pb-20{padding-bottom:5rem;}.grid-3{display:grid;}.gap-3{gap:0.75rem;}.mt-6{margin-top:1.5rem;}.w-3\/4{width:75.00%;}.h-6{height:1.5rem;}.h-12{height:3rem;}.w-1\/2{width:50.00%;}.h-4{height:1rem;}.bg-gray-50{background-color:#f9fafb;}.text-gray-900{color:#111827;}.mb-16{margin-bottom:4rem;}.border-gray-200{border-color:#e5e7eb;}.pb-8{padding-bottom:2rem;}.text-5xl{font-size:3.5rem;}.bg-blue-600{background-color:#2563eb;}.py-2{padding-top:0.5rem;padding-bottom:0.5rem;}.text-blue-600{color:#2563eb;}.text-gray-700{color:#374151;}.text-base{font-size:1rem;}.text-gray-600{color:#4b5563;}.shadow-md{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);}.bg-gray-800{background-color:#1f2937;}.hover\:bg-black:hover{background-color:#000000;}.border-gray-300{border-color:#d1d5db;}.hover\:bg-gray-100:hover{background-color:#f3f4f6;}.rounded-lg{border-radius:0.5rem;}.shadow-sm{box-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);}.border-gray-100{border-color:#f3f4f6;}.mt-8{margin-top:2rem;}.bg-blue-50{background-color:#eff6ff;}.w-1\/4{width:25.00%;}.gap-12{gap:3rem;}.shadow-xl{box-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1);}.bg-gray-900{background-color:#111827;}.border-gray-700{border-color:#374151;}.text-gray-300{color:#d1d5db;}.px-4{padding-left:1rem;padding-right:1rem;}.focus\:border-blue-600:focus{border-color:#2563eb;}.pt-8{padding-top:2rem;}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.md\:flex-row{flex-direction:row;}.md\:w-80{width:80;}.md\:text-5xl{font-size:3.5rem;}.md\:text-lg{font-size:1.125rem;}.md\:w-1\/2{width:50.00%;}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@howssatoshi/quantumcss",
3
+ "version": "1.0.1",
4
+ "description": "Advanced utility-first CSS framework with JIT generation and modern components",
5
+ "main": "dist/quantum.min.css",
6
+ "bin": {
7
+ "quantumcss": "src/cli.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "src",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "node scripts/build.js --minify",
17
+ "build:dev": "node scripts/build.js",
18
+ "watch": "node scripts/build.js --watch",
19
+ "generate": "node src/cli.js",
20
+ "generate:watch": "node src/cli.js --watch"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/macroadster/quantumcss.git"
25
+ },
26
+ "bugs": {
27
+ "url": "https://github.com/macroadster/quantumcss/issues"
28
+ },
29
+ "homepage": "https://github.com/macroadster/quantumcss#readme",
30
+ "keywords": [
31
+ "css",
32
+ "utility-first",
33
+ "framework",
34
+ "responsive",
35
+ "modern",
36
+ "jit",
37
+ "starlight"
38
+ ],
39
+ "author": "Eric Yang",
40
+ "license": "MIT",
41
+ "engines": {
42
+ "node": ">=14.0.0"
43
+ },
44
+ "dependencies": {
45
+ "chokidar": "^5.0.0",
46
+ "glob": "^13.0.0"
47
+ }
48
+ }
package/src/cli.js ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env node
2
+ const { generateCSS } = require('./generator');
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const chokidar = require('chokidar');
6
+
7
+ function build(outputPath) {
8
+ const configPath = './quantum.config.json';
9
+ console.log('✨ Quantum CSS: Generating styles...');
10
+ try {
11
+ const css = generateCSS(configPath);
12
+ const outputDir = path.dirname(outputPath);
13
+ if (!fs.existsSync(outputDir)) {
14
+ fs.mkdirSync(outputDir, { recursive: true });
15
+ }
16
+ fs.writeFileSync(outputPath, css);
17
+ console.log(`✅ Success! Styles generated at ${outputPath}`);
18
+ } catch (err) {
19
+ console.error('❌ Error generating CSS:', err);
20
+ }
21
+ }
22
+
23
+ function main() {
24
+ const args = process.argv.slice(2);
25
+ const watch = args.includes('--watch') || args.includes('-w');
26
+ const outputPath = args.find(a => !a.startsWith('-')) || 'dist/quantum.css';
27
+
28
+ build(outputPath);
29
+
30
+ if (watch) {
31
+ console.log(`👀 Watching for changes...`);
32
+ const watcher = chokidar.watch(['index.html', 'src/**/*', 'quantum.config.json'], {
33
+ ignored: '**/.*',
34
+ persistent: true
35
+ });
36
+
37
+ watcher.on('change', (path) => {
38
+ console.log(`File ${path} changed, rebuilding...`);
39
+ build(outputPath);
40
+ });
41
+ }
42
+ }
43
+
44
+ main();
@@ -0,0 +1,228 @@
1
+ const defaultTheme = {
2
+ colors: {
3
+ white: '#ffffff',
4
+ black: '#000000',
5
+ gray: {
6
+ 50: '#f9fafb',
7
+ 100: '#f3f4f6',
8
+ 200: '#e5e7eb',
9
+ 300: '#d1d5db',
10
+ 400: '#9ca3af',
11
+ 500: '#6b7280',
12
+ 600: '#4b5563',
13
+ 700: '#374151',
14
+ 800: '#1f2937',
15
+ 900: '#111827',
16
+ },
17
+ blue: {
18
+ 50: '#eff6ff',
19
+ 500: '#3b82f6',
20
+ 600: '#2563eb',
21
+ },
22
+ red: {
23
+ 500: '#ef4444',
24
+ },
25
+ green: {
26
+ 500: '#10b981',
27
+ },
28
+ starlight: {
29
+ blue: '#00d4ff',
30
+ peach: '#ffb38a',
31
+ orange: '#ff7e5f',
32
+ deep: '#08081a',
33
+ }
34
+ },
35
+ spacing: {
36
+ 0: '0px',
37
+ 1: '0.25rem',
38
+ 2: '0.5rem',
39
+ 3: '0.75rem',
40
+ 4: '1rem',
41
+ 5: '1.25rem',
42
+ 6: '1.5rem',
43
+ 8: '2rem',
44
+ 10: '2.5rem',
45
+ 12: '3rem',
46
+ 16: '4rem',
47
+ 20: '5rem',
48
+ 24: '6rem',
49
+ 32: '8rem',
50
+ 64: '16rem',
51
+ 128: '32rem',
52
+ 144: '36rem',
53
+ },
54
+ fontSize: {
55
+ xs: '0.75rem',
56
+ sm: '0.875rem',
57
+ base: '1rem',
58
+ lg: '1.125rem',
59
+ xl: '1.25rem',
60
+ '2xl': '1.5rem',
61
+ '3xl': '2rem',
62
+ '4xl': '2.5rem',
63
+ '5xl': '3.5rem',
64
+ '6xl': '4.5rem',
65
+ },
66
+ shadows: {
67
+ sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
68
+ md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
69
+ lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
70
+ xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
71
+ }
72
+ };
73
+
74
+ const utilityMaps = {
75
+ // Layout
76
+ flex: { property: 'display', value: 'flex' },
77
+ grid: { property: 'display', value: 'grid' },
78
+ hidden: { property: 'display', value: 'none' },
79
+ block: { property: 'display', value: 'block' },
80
+ 'inline-block': { property: 'display', value: 'inline-block' },
81
+
82
+ // Alignment
83
+ 'items-center': { property: 'align-items', value: 'center' },
84
+ 'items-start': { property: 'align-items', value: 'flex-start' },
85
+ 'items-end': { property: 'align-items', value: 'flex-end' },
86
+ 'justify-center': { property: 'justify-content', value: 'center' },
87
+ 'justify-between': { property: 'justify-content', value: 'space-between' },
88
+ 'justify-start': { property: 'justify-content', value: 'flex-start' },
89
+ 'justify-end': { property: 'justify-content', value: 'flex-end' },
90
+
91
+ // Flex/Grid specific
92
+ 'flex-col': { property: 'flex-direction', value: 'column' },
93
+ 'flex-grow': { property: 'flex-grow', value: '1' },
94
+ 'flex-wrap': { property: 'flex-wrap', value: 'wrap' },
95
+
96
+ // Sizing
97
+ w: 'width',
98
+ h: 'height',
99
+ 'w-full': { property: 'width', value: '100%' },
100
+ 'h-full': { property: 'height', value: '100%' },
101
+ 'max-w-prose': { property: 'max-width', value: '65ch' },
102
+ 'min-h-screen': { property: 'min-height', value: '100vh' },
103
+
104
+ // Spacing
105
+ m: 'margin',
106
+ mt: 'margin-top',
107
+ mr: 'margin-right',
108
+ mb: 'margin-bottom',
109
+ ml: 'margin-left',
110
+ mx: ['margin-left', 'margin-right'],
111
+ my: ['margin-top', 'margin-bottom'],
112
+ p: 'padding',
113
+ pt: 'padding-top',
114
+ pr: 'padding-right',
115
+ pb: 'padding-bottom',
116
+ pl: 'padding-left',
117
+ px: ['padding-left', 'padding-right'],
118
+ py: ['padding-top', 'padding-bottom'],
119
+ gap: 'gap',
120
+
121
+ // Typography
122
+ text: 'font-size',
123
+ 'font-bold': { property: 'font-weight', value: '700' },
124
+ 'font-medium': { property: 'font-weight', value: '500' },
125
+ 'font-light': { property: 'font-weight', value: '300' },
126
+ 'tracking-tighter': { property: 'letter-spacing', value: '-0.05em' },
127
+ 'tracking-tight': { property: 'letter-spacing', value: '-0.025em' },
128
+ 'text-center': { property: 'text-align', value: 'center' },
129
+ 'text-left': { property: 'text-align', value: 'left' },
130
+ 'text-right': { property: 'text-align', value: 'right' },
131
+
132
+ // Visuals
133
+ bg: 'background-color',
134
+ rounded: 'border-radius',
135
+ 'rounded-full': { property: 'border-radius', value: '9999px' },
136
+ 'rounded-xl': { property: 'border-radius', value: '0.75rem' },
137
+ border: { property: 'border-width', value: '1px' },
138
+ 'border-t': { property: 'border-top-width', value: '1px' },
139
+ 'border-b': { property: 'border-bottom-width', value: '1px' },
140
+ shadow: 'box-shadow',
141
+
142
+ // Interactivity & States
143
+ transition: { property: 'transition', value: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)' },
144
+ 'scale-105': { property: 'transform', value: 'scale(1.05)' },
145
+ 'active-scale': { property: 'transform', value: 'scale(0.96)' },
146
+ 'cursor-pointer': { property: 'cursor', value: 'pointer' },
147
+ 'overflow-hidden': { property: 'overflow', value: 'hidden' },
148
+
149
+ // Starlight Primitives
150
+ 'glass': {
151
+ property: ['background-color', 'backdrop-filter', '-webkit-backdrop-filter', 'border', 'box-shadow'],
152
+ value: ['rgba(255, 255, 255, 0.03)', 'blur(16px)', 'blur(16px)', '1px solid rgba(255, 255, 255, 0.1)', '0 8px 32px 0 rgba(0, 0, 0, 0.37)']
153
+ },
154
+ 'glow-blue': { property: 'box-shadow', value: '0 0 30px rgba(0, 212, 255, 0.25)' },
155
+ 'glow-peach': { property: 'box-shadow', value: '0 0 30px rgba(255, 179, 138, 0.2)' },
156
+ 'bg-starlight': { property: 'background', value: 'linear-gradient(135deg, #ffb38a 0%, #00d4ff 100%)' },
157
+ 'text-gradient-starlight': {
158
+ property: ['background', '-webkit-background-clip', '-webkit-text-fill-color', 'display'],
159
+ value: ['linear-gradient(to right, #ffb38a, #00d4ff)', 'text', 'transparent', 'inline-block']
160
+ },
161
+
162
+ // Components
163
+ 'btn-starlight': {
164
+ property: ['background', 'color', 'border', 'box-shadow', 'font-weight', 'transition', 'height', 'padding', 'display', 'align-items', 'justify-content', 'border-radius', 'cursor'],
165
+ value: ['linear-gradient(135deg, #ffb38a 0%, #00d4ff 100%)', '#000', 'none', '0 0 20px rgba(0, 212, 255, 0.3)', '700', 'all 0.2s ease', '3rem', '0 1.5rem', 'inline-flex', 'center', 'center', '0.75rem', 'pointer']
166
+ },
167
+ 'btn-secondary': {
168
+ property: ['background', 'color', 'border', 'font-weight', 'transition', 'height', 'padding', 'display', 'align-items', 'justify-content', 'border-radius', 'cursor'],
169
+ value: ['rgba(255, 255, 255, 0.05)', 'inherit', '1px solid rgba(255, 255, 255, 0.15)', '700', 'all 0.2s ease', '3rem', '0 1.5rem', 'inline-flex', 'center', 'center', '0.75rem', 'pointer']
170
+ },
171
+ 'input-starlight': {
172
+ property: ['background-color', 'border', 'color', 'border-radius', 'padding', 'appearance', 'background-image', 'background-repeat', 'background-position', 'background-size', 'transition', 'height'],
173
+ value: [
174
+ 'rgba(255, 255, 255, 0.04)',
175
+ '1px solid rgba(255, 255, 255, 0.15)',
176
+ 'inherit',
177
+ '0.75rem',
178
+ '0 2.5rem 0 1rem',
179
+ 'none',
180
+ 'url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'none\' viewBox=\'0 0 24 24\' stroke=\'rgba(255,255,255,0.4)\'%3E%3Cpath stroke-linecap=\'round\' stroke-linejoin=\'round\' stroke-width=\'2\' d=\'M8 9l4 4 4-4\' /%3E%3C/svg%3E")',
181
+ 'no-repeat',
182
+ 'right 1rem center',
183
+ '1rem',
184
+ 'all 0.2s ease',
185
+ '3rem'
186
+ ]
187
+ },
188
+ 'checkbox-starlight': {
189
+ property: ['appearance', 'width', 'height', 'background', 'border', 'border-radius', 'cursor', 'transition', 'position', 'display', 'align-items', 'justify-content'],
190
+ value: ['none', '1.25rem', '1.25rem', 'rgba(255, 255, 255, 0.05)', '1px solid rgba(255, 255, 255, 0.2)', '0.375rem', 'pointer', 'all 0.2s ease', 'relative', 'inline-flex', 'center', 'center']
191
+ },
192
+ 'radio-starlight': {
193
+ property: ['appearance', 'width', 'height', 'background', 'border', 'border-radius', 'cursor', 'transition', 'position', 'display', 'align-items', 'justify-content'],
194
+ value: ['none', '1.25rem', '1.25rem', 'rgba(255, 255, 255, 0.05)', '1px solid rgba(255, 255, 255, 0.2)', '50%', 'pointer', 'all 0.2s ease', 'relative', 'inline-flex', 'center', 'center']
195
+ },
196
+
197
+ // Dialog & Menu
198
+ 'dialog-overlay': {
199
+ property: ['position', 'top', 'left', 'width', 'height', 'background', 'backdrop-filter', 'display', 'align-items', 'justify-content', 'z-index'],
200
+ value: ['fixed', '0', '0', '100vw', '100vh', 'rgba(0, 0, 0, 0.6)', 'blur(12px)', 'flex', 'center', 'center', '400']
201
+ },
202
+ 'dialog-content': {
203
+ property: ['background-color', 'backdrop-filter', 'border', 'border-radius', 'width', 'max-width', 'box-shadow', 'overflow', 'position'],
204
+ value: ['rgba(10, 10, 20, 0.98)', 'blur(20px)', '1px solid rgba(255, 255, 255, 0.1)', '1.5rem', '90%', '600px', '0 25px 50px -12px rgba(0, 0, 0, 0.5)', 'hidden', 'relative']
205
+ },
206
+ 'dropdown-menu': {
207
+ property: ['background-color', 'backdrop-filter', 'border', 'border-radius', 'padding', 'box-shadow', 'min-width', 'z-index', 'margin-top'],
208
+ value: ['rgba(15, 15, 30, 0.98)', 'blur(20px)', '1px solid rgba(255, 255, 255, 0.1)', '1rem', '0.5rem', '0 20px 40px rgba(0,0,0,0.4)', '200px', '600', '0.5rem']
209
+ },
210
+ 'dropdown-item': {
211
+ property: ['padding', 'color', 'border-radius', 'display', 'width', 'text-align', 'transition', 'cursor', 'font-size'],
212
+ value: ['0.625rem 1rem', 'rgba(255,255,255,0.7)', '0.625rem', 'block', '100%', 'left', 'all 0.2s', 'pointer', '0.875rem']
213
+ },
214
+
215
+ // Tooltip
216
+ 'tooltip': {
217
+ property: ['position', 'bottom', 'left', 'transform', 'padding', 'background-color', 'backdrop-filter', 'border', 'border-radius', 'color', 'font-size', 'white-space', 'pointer-events', 'opacity', 'transition', 'z-index', 'box-shadow'],
218
+ value: ['absolute', '125%', '50%', 'translateX(-50%)', '0.5rem 0.75rem', 'rgba(10, 10, 30, 0.98)', 'blur(12px)', '1px solid rgba(0, 212, 255, 0.3)', '0.5rem', '#f1f5f9', '0.75rem', 'nowrap', 'none', '0', 'all 0.2s ease', '800', '0 4px 15px rgba(0, 0, 0, 0.4)']
219
+ },
220
+
221
+ // Skeleton
222
+ 'skeleton': {
223
+ property: ['background-color', 'background-image', 'background-size', 'background-repeat', 'border-radius', 'width', 'height'],
224
+ value: ['rgba(255, 255, 255, 0.1)', 'linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent)', '200% 100%', 'no-repeat', '0.5rem', '100%', '1rem']
225
+ }
226
+ };
227
+
228
+ module.exports = { defaultTheme, utilityMaps };
@@ -0,0 +1,183 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const { glob } = require('glob');
4
+ const { defaultTheme, utilityMaps } = require('./defaults');
5
+
6
+ const breakpoints = {
7
+ sm: '640px',
8
+ md: '768px',
9
+ lg: '1024px',
10
+ xl: '1280px',
11
+ };
12
+
13
+ function generateCSS(configPath) {
14
+ delete require.cache[path.resolve(configPath)];
15
+ const config = require(path.resolve(configPath));
16
+
17
+ const contentPaths = config.content || [];
18
+ const theme = { ...defaultTheme };
19
+ if (config.theme) {
20
+ if (config.theme.extend) {
21
+ theme.colors = { ...theme.colors, ...config.theme.extend.colors };
22
+ theme.spacing = { ...theme.spacing, ...config.theme.extend.spacing };
23
+ theme.fontSize = { ...theme.fontSize, ...config.theme.extend.fontSize };
24
+ theme.shadows = { ...theme.shadows, ...config.theme.extend.shadows };
25
+ } else {
26
+ Object.assign(theme, config.theme);
27
+ }
28
+ }
29
+
30
+ const flattenedColors = {};
31
+ Object.entries(theme.colors).forEach(([name, value]) => {
32
+ if (typeof value === 'string') {
33
+ flattenedColors[name] = value;
34
+ } else {
35
+ Object.entries(value).forEach(([shade, hex]) => {
36
+ flattenedColors[`${name}-${shade}`] = hex;
37
+ });
38
+ }
39
+ });
40
+
41
+ const files = contentPaths.flatMap(p => glob.sync(p));
42
+ const rawClasses = new Set();
43
+
44
+ files.forEach(file => {
45
+ const content = fs.readFileSync(file, 'utf8');
46
+ const matches = content.match(/[a-z0-9\-\/:]+/g);
47
+ if (matches) {
48
+ matches.forEach(cls => rawClasses.add(cls));
49
+ }
50
+ });
51
+
52
+ let css = '/* Quantum CSS - High Performance Output */\n';
53
+ css += '*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; }\n';
54
+ css += 'html { line-height: 1.5; -webkit-text-size-adjust: 100%; font-family: Inter, ui-sans-serif, system-ui, sans-serif; }\n';
55
+ css += 'body { margin: 0; line-height: inherit; }\n';
56
+ css += 'img { display: block; max-width: 100%; height: auto; }\n';
57
+ css += 'button { cursor: pointer; background: transparent; padding: 0; color: inherit; font: inherit; }\n\n';
58
+
59
+ const utilities = new Set();
60
+ const responsiveUtils = { sm: new Set(), md: new Set(), lg: new Set(), xl: new Set() };
61
+
62
+ function processClass(fullCls) {
63
+ let cls = fullCls;
64
+ let variant = null;
65
+ let breakpoint = null;
66
+
67
+ const parts = cls.split(':');
68
+ if (parts.length > 1) {
69
+ if (breakpoints[parts[0]]) {
70
+ breakpoint = parts[0];
71
+ cls = parts.slice(1).join(':');
72
+ }
73
+ const subParts = cls.split(':');
74
+ if (subParts.length > 1) {
75
+ variant = subParts[0];
76
+ cls = subParts[1];
77
+ } else if (!breakpoint) {
78
+ variant = parts[0];
79
+ cls = parts[1];
80
+ }
81
+ }
82
+
83
+ let property = null;
84
+ let value = null;
85
+
86
+ if (utilityMaps[cls]) {
87
+ if (typeof utilityMaps[cls] === 'object' && !Array.isArray(utilityMaps[cls])) {
88
+ property = utilityMaps[cls].property;
89
+ value = utilityMaps[cls].value;
90
+ } else {
91
+ property = utilityMaps[cls];
92
+ }
93
+ }
94
+
95
+ if (!property || !value) {
96
+ const cParts = cls.split('-');
97
+ const prefix = cParts[0];
98
+ const valKey = cParts.slice(1).join('-');
99
+
100
+ if (prefix === 'text') {
101
+ if (theme.fontSize[valKey]) { property = 'font-size'; value = theme.fontSize[valKey]; }
102
+ else if (flattenedColors[valKey]) { property = 'color'; value = flattenedColors[valKey]; }
103
+ } else if (prefix === 'bg') {
104
+ property = 'background-color'; value = flattenedColors[valKey];
105
+ } else if (prefix === 'shadow') {
106
+ property = 'box-shadow'; value = theme.shadows[valKey] || theme.shadows.md;
107
+ } else if (prefix === 'rounded') {
108
+ property = 'border-radius';
109
+ if (valKey === 'lg') value = '0.5rem';
110
+ else if (valKey === 'full') value = '9999px';
111
+ else value = theme.spacing[valKey] || (valKey ? `${parseInt(valKey) * 0.125}rem` : '0.25rem');
112
+ } else if (prefix === 'border') {
113
+ if (flattenedColors[valKey]) {
114
+ property = 'border-color'; value = flattenedColors[valKey];
115
+ } else if (cParts[1] === 'l' || cParts[1] === 'r' || cParts[1] === 't' || cParts[1] === 'b') {
116
+ const sideMap = { l: 'left', r: 'right', t: 'top', b: 'bottom' };
117
+ property = `border-${sideMap[cParts[1]]}-width`;
118
+ value = `${cParts[2]}px`;
119
+ }
120
+ } else if (prefix === 'gap') {
121
+ property = 'gap'; value = theme.spacing[valKey] || (valKey ? (isNaN(valKey) ? valKey : `${valKey}rem`) : '0px');
122
+ } else if (prefix === 'grid' && cParts[1] === 'cols') {
123
+ property = 'grid-template-columns';
124
+ value = `repeat(${cParts[2]}, minmax(0, 1fr))`;
125
+ } else if (prefix === 'flex' && cParts[1] === 'row') {
126
+ property = 'flex-direction';
127
+ value = 'row';
128
+ } else if (prefix === 'w' || prefix === 'h') {
129
+ property = utilityMaps[prefix];
130
+ if (valKey.includes('/')) {
131
+ const [n, d] = valKey.split('/');
132
+ value = `${(parseInt(n)/parseInt(d)*100).toFixed(2)}%`;
133
+ } else {
134
+ value = theme.spacing[valKey] || valKey;
135
+ }
136
+ } else if (utilityMaps[prefix]) {
137
+ const mapEntry = utilityMaps[prefix];
138
+ if (typeof mapEntry === 'object' && !Array.isArray(mapEntry)) {
139
+ property = mapEntry.property;
140
+ value = mapEntry.value;
141
+ } else {
142
+ property = mapEntry;
143
+ value = theme.spacing[valKey] || valKey;
144
+ }
145
+ }
146
+ }
147
+
148
+ if (property && value) {
149
+ let selector = `.${fullCls.replace(/:/g, '\\:').replace(/\//g, '\\/')}`;
150
+ if (variant === 'hover' || variant === 'focus') selector += `:${variant}`;
151
+
152
+ let rules = '';
153
+ if (Array.isArray(property)) {
154
+ if (Array.isArray(value)) {
155
+ rules = property.map((p, i) => ` ${p}: ${value[i]};`).join('\n');
156
+ } else {
157
+ rules = property.map(p => ` ${p}: ${value};`).join('\n');
158
+ }
159
+ } else {
160
+ rules = ` ${property}: ${value};`;
161
+ }
162
+
163
+ const cssBlock = `${selector} {\n${rules}\n}\n`;
164
+ if (breakpoint) { responsiveUtils[breakpoint].add(cssBlock); }
165
+ else { utilities.add(cssBlock); }
166
+ }
167
+ }
168
+
169
+ rawClasses.forEach(processClass);
170
+
171
+ css += Array.from(utilities).join('\n');
172
+ Object.entries(breakpoints).forEach(([name, width]) => {
173
+ if (responsiveUtils[name].size > 0) {
174
+ css += `\n@media (min-width: ${width}) {\n`;
175
+ css += Array.from(responsiveUtils[name]).map(u => ' ' + u.replace(/\n/g, '\n ')).join('\n').trimEnd();
176
+ css += '\n}\n';
177
+ }
178
+ });
179
+
180
+ return css;
181
+ }
182
+
183
+ module.exports = { generateCSS };