:root{--bg-primary: #0a0a0b;--bg-secondary: #121214;--bg-card: #18181b;--bg-hover: #1f1f23;--bg-input: #27272a;--border: #2a2a2e;--border-hover: #3a3a3e;--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-muted: #71717a;--accent: #22d3ee;--accent-hover: #06b6d4;--accent-dim: rgba(34, 211, 238, .1);--green: #22c55e;--green-dim: rgba(34, 197, 94, .1);--red: #ef4444;--red-dim: rgba(239, 68, 68, .1);--yellow: #eab308;--yellow-dim: rgba(234, 179, 8, .1);--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.3);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}body.page-devtools{--bg-primary: #091509;--bg-secondary: #101f10;--bg-card: #101f10;--bg-hover: #172617;--bg-input: #213321;--border: #213321;--border-hover: #2a452a;--text-primary: #ebe4d2;--text-secondary: #dcd7c9;--text-muted: #959074;--accent: #c2ad61;--accent-hover: #d4bf73;--accent-dim: rgba(194, 173, 97, .1);--green: #76af77;--green-dim: rgba(118, 175, 119, .1);--red: #d74745;--red-dim: rgba(215, 71, 69, .1);--yellow: #c2ad61;--yellow-dim: rgba(194, 173, 97, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}.container{max-width:1200px;margin:0 auto;padding:0 20px}.header{border-bottom:1px solid var(--border);background:var(--bg-secondary);position:sticky;top:0;z-index:100}.header-inner{display:flex;align-items:center;justify-content:space-between;height:60px;position:relative}.logo{font-size:1.25rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px;position:relative;left:0;transform:none}.dev-mode-toggle{margin-left:auto}.logo-icon{color:var(--accent);display:flex}.logo-icon svg{width:18px;height:18px;display:block}.logo:hover{color:var(--text-primary)}.header-inner{position:relative}.sidebar-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px;min-height:44px;min-width:44px;justify-content:center;align-items:center;color:var(--text-secondary)}.sidebar-toggle span{display:block;width:20px;height:2px;background:currentColor;border-radius:1px;transition:.2s}.sidebar-toggle:hover{color:var(--text-primary)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:150}.sidebar-overlay.active{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--bg-secondary);border-right:1px solid var(--border);z-index:200;display:flex;flex-direction:column;transform:translate(-100%);overflow:hidden}@media (max-width: 1024px){.sidebar{transition:transform .25s}}.sidebar.open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;gap:8px;padding:14px 12px;min-height:60px;border-bottom:1px solid var(--border)}.sidebar-search-wrapper{flex:1;display:flex;align-items:center;gap:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px}.sidebar-search-wrapper svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.sidebar-search-wrapper:focus-within{border-color:var(--accent)}.sidebar-search{flex:1;background:none;border:none;color:var(--text-primary);font-size:.85rem;font-family:inherit;outline:none}.sidebar-search::placeholder{color:var(--text-muted)}.sidebar-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px 12px;line-height:1;min-height:44px;display:flex;align-items:center}.sidebar-close svg{width:18px;height:18px;display:block}.sidebar-close:hover{color:var(--text-primary)}.sidebar-nav{flex:1;overflow-y:auto;padding:8px 0}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sidebar-category{border-bottom:1px solid var(--border)}.sidebar-category-header{display:flex;align-items:center;gap:8px;padding:12px 16px;min-height:44px;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.sidebar-category-header:hover{color:var(--text-secondary)}.sidebar-category-header .cat-arrow{font-size:.7rem;transition:transform .2s;margin-left:auto}.sidebar-category-header .cat-arrow svg{width:12px;height:12px;display:block}.sidebar-category.collapsed .cat-arrow{transform:rotate(-90deg)}.sidebar-category-links{display:flex;flex-direction:column}.sidebar-category.collapsed .sidebar-category-links{display:none}.sidebar-link{display:flex;align-items:center;gap:8px;padding:10px 16px 10px 24px;min-height:44px;font-size:.85rem;color:var(--text-secondary);transition:all .12s;border-left:2px solid transparent}.sidebar-link:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-link.active{color:var(--accent);background:var(--accent-dim);border-left-color:var(--accent)}.sidebar-link svg{width:16px;height:16px;flex-shrink:0;opacity:.7}.sidebar-link.active svg{opacity:1}.sidebar-footer{padding:8px 12px;border-top:1px solid var(--border);display:flex;gap:4px;font-size:.8rem;flex-wrap:wrap}.sidebar-footer a{color:var(--text-muted);padding:8px 10px;min-height:44px;display:flex;align-items:center}.sidebar-footer a:hover{color:var(--accent)}body.sidebar-open{overflow:hidden}@media (min-width: 1025px){.sidebar{transform:translate(0);transition:none}.sidebar-overlay{display:none!important}.sidebar-close{display:none}main,.footer{margin-left:260px}.header-inner{max-width:1460px}body.sidebar-open{overflow:auto}}.breadcrumb{display:flex;align-items:center;gap:8px;padding:12px 0;font-size:.85rem;color:var(--text-muted)}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--accent)}.breadcrumb span{color:var(--text-secondary)}.hero{text-align:center;padding:60px 0 40px}.hero h1{font-size:2.5rem;font-weight:800;line-height:1.2;margin-bottom:16px}.hero h1 span{color:var(--accent)}.hero p{font-size:1.1rem;color:var(--text-secondary);max-width:650px;margin:0 auto 32px}.hero-badges{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:40px}.hero-badge{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-secondary)}.hero-badge svg{width:18px;height:18px}.category-section{padding:40px 0}.category-title{font-size:1.5rem;font-weight:700;margin-bottom:24px;display:flex;align-items:center;gap:10px}.category-title .icon{font-size:1.3rem;display:inline-flex}.category-title .icon svg{width:1.3rem;height:1.3rem}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.tool-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all .15s;display:flex;flex-direction:column;gap:8px;cursor:pointer}.tool-card:hover{border-color:var(--accent);background:var(--bg-hover);transform:translateY(-1px)}.tool-card-header{display:flex;align-items:center;gap:10px}.tool-card-icon{width:36px;height:36px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.tool-card-icon svg{width:20px;height:20px}.tool-card h3{font-size:1rem;font-weight:600}.tool-card p{font-size:.85rem;color:var(--text-muted);line-height:1.5}.page-header{padding:32px 0 24px;border-bottom:1px solid var(--border);margin-bottom:32px}.page-header h1{font-size:2rem;font-weight:800;margin-bottom:8px}.page-header p{color:var(--text-secondary);font-size:1rem;max-width:700px}.page-header .features{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px}.page-header .features span{font-size:.85rem;color:var(--green);display:flex;align-items:center;gap:4px}.tool-interface{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;margin-bottom:40px}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:60px 20px;text-align:center;cursor:pointer;transition:all .15s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent);background:var(--accent-dim)}.drop-zone-icon{font-size:2.5rem;margin-bottom:12px;color:var(--text-muted)}.drop-zone-icon svg{width:2.5rem;height:2.5rem;display:block;margin:0 auto}.drop-zone p{color:var(--text-secondary);margin-bottom:4px}.drop-zone .sub{font-size:.85rem;color:var(--text-muted)}.drop-zone input{display:none}.form-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);font-size:.85rem;font-family:SF Mono,Cascadia Code,Fira Code,monospace;outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--accent)}select.form-input{font-family:var(--font);cursor:pointer}textarea.form-input{resize:vertical;min-height:80px;font-family:var(--font)}@media (max-width: 480px){.form-input,select,input,textarea{font-size:16px}}.input-label{display:block;font-size:.8rem;font-weight:500;color:var(--text-muted);margin-bottom:4px}.input-row{display:flex;gap:6px}.input-row .form-input{flex:1}.input-row .btn{flex-shrink:0}input[type=file].form-input{padding:6px 8px;cursor:pointer}input[type=file]::file-selector-button{background:var(--accent);color:#000;font-weight:600;font-size:.85rem;border:none;padding:10px 18px;border-radius:6px;cursor:pointer;margin-right:10px;transition:opacity .15s}input[type=file]::file-selector-button:hover{opacity:.85}.colour-preview{margin-top:12px;padding:16px;background:var(--bg-primary);border-radius:var(--radius);border:1px solid var(--border)}.colour-swatch-wrapper{display:flex;align-items:center;gap:12px;margin-bottom:12px}.colour-swatch{width:40px;height:40px;border-radius:6px;border:1px solid var(--border)}.colour-swatch-label{font-family:SF Mono,monospace;font-size:.85rem;color:var(--text-primary)}.colour-results{display:flex;flex-direction:column;gap:4px}.result-row{display:flex;align-items:center;gap:8px;padding:4px 0}.result-label{font-size:.7rem;font-weight:500;color:var(--text-muted);width:44px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.result-value{font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:.85rem;color:var(--text-primary);flex:1}.btn-copy{background:none;border:none;cursor:pointer;font-size:.8rem;padding:2px 6px;border-radius:4px;color:var(--text-muted);transition:all .15s}.btn-copy:hover{background:var(--bg-hover);color:var(--accent)}.error-msg{margin-top:10px;padding:8px 12px;background:#ef44441a;color:#ef4444;border-radius:6px;font-size:.8rem}.colour-input-group{display:flex;gap:8px;align-items:flex-end}.colour-input-group .form-input{flex:1}.colour-input-group input[type=color]{width:40px;height:36px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);cursor:pointer;flex-shrink:0}.colour-input-group input[type=color]:hover{border-color:var(--accent)}input[type=color].colour-picker{width:40px;height:36px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);cursor:pointer;flex-shrink:0}input[type=color].colour-picker:hover{border-color:var(--accent)}input[type=color].colour-picker::-webkit-color-swatch-wrapper{padding:2px}input[type=color].colour-picker::-webkit-color-swatch{border:none;border-radius:4px}.swatch-xl{width:100px;height:100px;border-radius:10px;border:2px solid var(--border);flex-shrink:0}.swatch-lg{width:64px;height:64px;border-radius:8px;border:1px solid var(--border);flex-shrink:0}.swatch-display{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-primary);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:16px}.swatch-info{display:flex;flex-direction:column;gap:2px}.swatch-info .hex-label{font-family:SF Mono,monospace;font-size:1rem;font-weight:600}.swatch-info .desc-label{font-size:.75rem;color:var(--text-muted)}.preview-strip{display:flex;gap:3px;border-radius:var(--radius);overflow:hidden;height:64px}.preview-strip-item{flex:1;display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;cursor:pointer;transition:flex .2s;position:relative}.preview-strip-item:hover{flex:1.5}.preview-strip-item code{font-size:.6rem;background:#0009;padding:2px 5px;border-radius:3px;color:#fff;opacity:0;transition:opacity .2s}.preview-strip-item:hover code{opacity:1}.shade-strip{display:flex;flex-direction:column;gap:2px;border-radius:var(--radius);overflow:hidden}.shade-item{display:flex;align-items:center;gap:10px;padding:6px 10px;cursor:pointer;transition:background .12s}.shade-item:hover{background:var(--bg-hover)}.shade-swatch{width:36px;height:36px;border-radius:6px;flex-shrink:0}.shade-item code{font-family:SF Mono,monospace;font-size:.75rem;color:var(--text-secondary)}.shade-item .shade-label{font-size:.7rem;color:var(--text-muted);width:36px;flex-shrink:0;text-transform:uppercase}.harmony-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.harmony-card{background:var(--bg-primary);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:all .12s}.harmony-card:hover{border-color:var(--accent)}.harmony-swatch{height:64px}.harmony-card .harmony-info{padding:6px 10px;display:flex;flex-direction:column;gap:2px}.harmony-card .harmony-info code{font-family:SF Mono,monospace;font-size:.7rem;color:var(--text-secondary)}.sim-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sim-panel{background:var(--bg-primary);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.sim-panel-header{padding:6px 12px;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.sim-panel-body{padding:16px}.gauge-bar{height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden;margin:10px 0}.gauge-fill{height:100%;border-radius:3px;transition:width .3s,background .3s}.two-col-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 640px){.two-col-grid,.sim-panels{grid-template-columns:1fr}}@media (max-width: 640px){.harmony-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.swatch-xl{width:72px;height:72px}}.contrast-swatches{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px}.contrast-swatch-pair{display:flex;gap:12px}.contrast-sample{margin-top:12px;padding:20px;border-radius:var(--radius);font-size:1rem;line-height:1.5}.contrast-ratio-display{display:flex;align-items:baseline;gap:8px;margin:16px 0}.ratio-number{font-size:1.5rem;font-weight:700;color:var(--accent)}.ratio-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.contrast-results{display:flex;flex-direction:column;gap:6px}.contrast-grade{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:var(--radius);font-size:.85rem;font-weight:500}.contrast-grade.pass{background:#22c55e1a;color:#22c55e}.contrast-grade.fail{background:#ef44441a;color:#ef4444}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:6px;font-size:.8rem;font-weight:500;border:none;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1.4}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg-card)}.btn-danger{background:var(--red-dim);color:var(--red)}.btn-danger:hover{background:var(--red);color:#fff}.btn-group{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.file-list{margin-top:16px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px}.file-item-info{display:flex;align-items:center;gap:10px}.file-item-name{font-weight:500;font-size:.9rem}.file-item-size{font-size:.8rem;color:var(--text-muted)}.file-item-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px}.file-item-remove:hover{color:var(--red);background:var(--red-dim)}.options-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:16px 0}.option-group{display:flex;flex-direction:column;gap:6px}.option-group label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.option-group select,.option-group input{padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.9rem;font-family:inherit}.option-group select:focus,.option-group input:focus{outline:none;border-color:var(--accent)}.option-group input[type=number]{width:100px}.option-group input[type=password]{width:100%}.progress-container{margin:16px 0;display:none}.progress-container.active{display:block}.progress-bar{width:100%;height:4px;background:var(--bg-input);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);width:0%;transition:width .3s}.progress-text{font-size:.85rem;color:var(--text-muted);margin-top:8px}.result-container{display:none;margin-top:16px}.result-container.active{display:block}.result-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.preview-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:16px 0;max-height:500px;overflow:auto}.preview-box img{max-width:100%}.how-to{padding:40px 0}.how-to h2{font-size:1.5rem;font-weight:700;margin-bottom:24px}.steps{display:grid;gap:16px;counter-reset:step}.step{display:flex;gap:16px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.step-num{width:32px;height:32px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0}.step-content h3{font-size:.95rem;font-weight:600;margin-bottom:4px}.step-content p{font-size:.85rem;color:var(--text-secondary)}.content-section{padding:32px 0;border-top:1px solid var(--border)}.content-section h2{font-size:1.3rem;font-weight:700;margin-bottom:16px}.content-section h3{font-size:1.1rem;font-weight:600;margin-bottom:12px;margin-top:24px}.content-section p{color:var(--text-secondary);margin-bottom:16px;line-height:1.7}.content-section ul,.content-section ol{color:var(--text-secondary);margin:0 0 16px 20px}.content-section li{margin-bottom:8px}.comparison-table{width:100%;border-collapse:collapse;margin:16px 0}.comparison-table th,.comparison-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem}.comparison-table th{background:var(--bg-secondary);color:var(--text-secondary);font-weight:600}.comparison-table td{color:var(--text-secondary)}.comparison-table .check{color:var(--green)}.comparison-table .cross{color:var(--red)}.faq-section{padding:32px 0;border-top:1px solid var(--border)}.faq-section h2{font-size:1.3rem;font-weight:700;margin-bottom:24px}.faq-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.faq-question{width:100%;padding:14px 16px;min-height:48px;background:var(--bg-card);border:none;color:var(--text-primary);font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-family:inherit}.faq-question:hover{background:var(--bg-hover)}.faq-question .arrow{transition:transform .2s;font-size:.8rem}.faq-question.active .arrow{transform:rotate(180deg)}.faq-answer{padding:0 16px;max-height:0;overflow:hidden;transition:all .2s}.faq-answer.open{padding:16px;max-height:500px}.faq-answer p{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.related-tools{padding:32px 0;border-top:1px solid var(--border)}.related-tools h2{font-size:1.3rem;font-weight:700;margin-bottom:16px}.related-links{display:flex;flex-wrap:wrap;gap:8px}.related-links a{padding:10px 18px;min-height:44px;display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.85rem;transition:all .15s}.related-links a:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.footer{border-top:1px solid var(--border);padding:40px 0;margin-top:60px}.footer-inner{display:flex;flex-wrap:wrap;gap:40px}.footer-col{flex:1;min-width:200px}.footer-col h4{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}.footer-col a{display:block;color:var(--text-secondary);font-size:.85rem;padding:4px 0}.footer-col a:hover{color:var(--accent)}.footer-bottom{text-align:center;padding-top:32px;margin-top:32px;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-muted)}.footer-social{display:flex;justify-content:center;gap:16px;margin-top:16px}.footer-social a{color:var(--text-muted);transition:color .2s;display:inline-flex;align-items:center}.footer-social a:hover{color:var(--accent)}.footer-social svg{width:20px;height:20px}.rating{margin:32px 0;text-align:center}.rating p{color:var(--text-secondary);margin-bottom:8px}.stars{display:flex;justify-content:center;gap:4px}.stars button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);transition:color .15s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.stars button:hover,.stars button.active{color:var(--yellow)}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.gap-8{gap:8px}.gap-16{gap:16px}.items-center{align-items:center}.justify-between{justify-content:space-between}.thumbnail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:16px 0;touch-action:none}.thumbnail-item{position:relative;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:grab;transition:transform .15s,box-shadow .15s}.thumbnail-item:active{cursor:grabbing}.thumbnail-item img{width:100%;display:block;pointer-events:none}.thumbnail-item .page-num{position:absolute;bottom:4px;right:4px;background:#000000b3;color:#fff;padding:2px 6px;font-size:.75rem;border-radius:4px;pointer-events:none}.thumbnail-actions{position:absolute;top:4px;right:4px;display:flex;gap:3px}.thumbnail-actions button{width:24px;height:24px;border-radius:4px;border:none;background:#000000b3;color:#fff;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.thumbnail-actions button:hover{background:#000000e6}.thumbnail-actions button:active{background:var(--accent);color:#000}.drop-indicator{height:3px;background:var(--accent);border-radius:2px;margin:2px 0;pointer-events:none;flex-shrink:0}.thumbnail-item.dragging{opacity:.3}.drag-ghost{transform-origin:top left;box-shadow:0 8px 24px #0006;border-color:var(--accent)!important;cursor:grabbing!important}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 20px;font-size:.9rem;color:var(--text-primary);box-shadow:0 4px 12px #0006;transform:translateY(100px);opacity:0;transition:all .3s;z-index:200}.toast.show{transform:translateY(0);opacity:1}.icon-cyan{background:var(--accent-dim);color:var(--accent)}.icon-green{background:var(--green-dim);color:var(--green)}.icon-yellow{background:var(--yellow-dim);color:var(--yellow)}.icon-red{background:var(--red-dim);color:var(--red)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.btn-loading{position:relative;pointer-events:none}.btn-loading .btn-text{visibility:hidden}.btn-loading .spinner{position:absolute;top:50%;left:50%;margin-top:-9px;margin-left:-9px}.error-message{display:none;padding:10px 14px;background:var(--red-dim);border:1px solid var(--red);border-radius:var(--radius);color:var(--red);font-size:.85rem;margin-top:12px;align-items:center;gap:8px}.error-message.active{display:flex}.error-message svg{width:16px;height:16px;flex-shrink:0}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-hover) 50%,var(--bg-card) 75%);background-size:200px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius)}.skeleton-text{height:14px;margin-bottom:8px;width:100%}.skeleton-text.short{width:60%}.skeleton-button{height:40px;width:120px}.skeleton-block{height:200px;margin-bottom:16px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .25s ease-out}.slide-up,.result-container.active{animation:slideUp .3s ease-out}html{background:var(--bg-primary)}.toast-error{border-color:var(--red);background:var(--red-dim);color:var(--red)}[data-icon]{display:inline-block;width:1em;height:1em;vertical-align:middle}[data-icon] svg{width:1em;height:1em;display:inline-block;vertical-align:middle}.drop-zone{padding:40px 20px}.back-bar{padding:12px 0 0;min-height:0}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--text-muted);transition:color .15s}.back-link:hover{color:var(--accent)}.back-link svg{width:14px;height:14px}@media (max-width: 768px){.hero{padding:32px 0 24px}.hero h1{font-size:1.6rem}.hero p{font-size:.95rem}.hero-badges{gap:12px}.hero-badge{font-size:.8rem}.tool-grid{grid-template-columns:1fr}.tool-card{padding:14px}.page-header{padding:20px 0 16px}.page-header h1{font-size:1.3rem}.page-header p{font-size:.9rem}.page-header .features{gap:8px}.page-header .features span{font-size:.8rem}.tool-interface{padding:14px;margin-bottom:24px}.drop-zone{padding:32px 14px}.drop-zone-icon{font-size:1.8rem}.drop-zone-icon svg{width:1.8rem;height:1.8rem}.drop-zone p{font-size:.9rem}.drop-zone .sub{font-size:.8rem}.options-grid{grid-template-columns:1fr;gap:12px}.option-group select,.option-group input{font-size:16px;padding:10px 12px}.header-inner{height:52px}.logo{font-size:1.1rem}.btn{padding:12px 20px;font-size:.85rem;min-height:44px;justify-content:center}.btn-group{flex-direction:column}.btn-group .btn{width:100%}.file-item{padding:10px 12px}.file-item-info{gap:8px;min-width:0}.file-item-name{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-size{font-size:.75rem;white-space:nowrap}.thumbnail-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.thumbnail-actions{gap:4px}.thumbnail-actions button{width:32px;height:32px;font-size:.8rem}.category-section{padding:24px 0}.category-title{font-size:1.2rem;margin-bottom:16px}.content-section{padding:20px 0}.content-section h2{font-size:1.1rem}.content-section p{font-size:.85rem}.how-to{padding:24px 0}.how-to h2{font-size:1.2rem}.step{padding:12px}.comparison-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.comparison-table th,.comparison-table td{font-size:.8rem;padding:8px 10px;white-space:nowrap}.faq-section{padding:20px 0}.faq-section h2{font-size:1.1rem}.faq-question{font-size:.85rem;padding:12px}.faq-answer.open{padding:12px}.faq-answer p{font-size:.85rem}.related-tools{padding:20px 0}.related-tools h2{font-size:1.1rem}.related-links a{padding:8px 12px;font-size:.8rem}.footer{padding:24px 0;margin-top:32px}.footer-inner{flex-direction:column;gap:20px}.footer-col{min-width:100%}.footer-bottom{font-size:.8rem;padding-top:20px;margin-top:20px}.breadcrumb{font-size:.8rem;padding:8px 0}.stars button{font-size:1.8rem}.toast{left:16px;right:16px;bottom:16px;text-align:center}.preview-box{max-height:300px}.organizer-container #thumbnailGrid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}}@media (max-width: 480px){.hero h1{font-size:1.5rem}.hero p{font-size:.9rem}.page-header h1{font-size:1.15rem}.drop-zone{padding:24px 12px}.drop-zone-icon{font-size:1.5rem}.drop-zone-icon svg{width:1.5rem;height:1.5rem}.tool-interface{padding:12px;border-radius:var(--radius)}.thumbnail-grid{grid-template-columns:repeat(2,1fr);gap:6px}.thumbnail-actions{gap:3px}.thumbnail-actions button{width:40px;height:40px;font-size:.85rem}.container{padding:0 12px}.btn{font-size:.8rem;padding:12px 18px;min-height:44px}}.dev-mode-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap;margin-left:auto;margin-right:8px;min-height:36px}.dev-mode-toggle:hover{background:var(--accent);color:#000;box-shadow:0 0 20px #22d3ee4d}.dev-mode-toggle svg{width:16px;height:16px}.blog-post{max-width:720px;margin:0 auto;padding:32px 0}.blog-post h1{font-size:2rem;font-weight:800;line-height:1.2;margin-bottom:8px}.blog-post .blog-meta{color:var(--text-muted);font-size:.85rem;margin-bottom:32px}.blog-post h2{font-size:1.4rem;font-weight:700;margin:32px 0 16px}.blog-post h3{font-size:1.1rem;font-weight:600;margin:24px 0 12px}.blog-post p{color:var(--text-secondary);line-height:1.7;margin-bottom:16px}.blog-post ul,.blog-post ol{color:var(--text-secondary);line-height:1.7;margin:0 0 16px 20px}.blog-post li{margin-bottom:6px}.blog-post table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9rem}.blog-post th,.blog-post td{border:1px solid var(--border);padding:10px 12px;text-align:left}.blog-post th{background:var(--bg-secondary);font-weight:600}.blog-post .code-block{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px;overflow-x:auto;font-family:monospace;font-size:.85rem;line-height:1.5;margin:16px 0}.blog-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin:32px 0}.blog-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:border-color .2s,transform .2s}.blog-card:hover{border-color:var(--accent);transform:translateY(-2px)}.blog-card h3{font-size:1.1rem;font-weight:600;margin-bottom:8px}.blog-card h3 a{color:var(--text-primary);text-decoration:none}.blog-card h3 a:hover{color:var(--accent)}.blog-card .card-excerpt{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:12px}.blog-card .card-meta{color:var(--text-muted);font-size:.8rem}.page-devtools .page-header{padding:20px 0 16px;border-bottom:none;margin-bottom:16px}.page-devtools .page-header h1{font-size:1.35rem;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}.page-devtools .page-header p{font-size:.85rem;color:var(--text-muted);margin-top:2px}.devtool-section-badge{font-size:.7rem;font-weight:500;color:var(--accent);white-space:nowrap}.page-devtools .back-bar{padding:6px 0 2px}.page-devtools .back-link{font-size:.75rem;color:var(--text-muted);transition:color .15s}.page-devtools .back-link:hover{color:var(--accent)}.page-devtools .tool-interface{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:28px}.page-devtools .tool-interface .btn-primary{margin-top:8px}.page-devtools .colour-preview{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.page-devtools .result-row{padding:4px 0}.page-devtools .result-label{font-size:.7rem;width:40px}.page-devtools .result-value{font-size:.85rem;font-family:SF Mono,Cascadia Code,Fira Code,monospace;word-break:break-all}.page-devtools .how-to{padding:16px 0}.page-devtools .how-to h2{font-size:1rem;font-weight:600;margin-bottom:12px}.page-devtools .related-tools{padding:12px 0}.page-devtools .related-tools h2{font-size:.9rem;font-weight:600;margin-bottom:10px}.page-devtools .related-links{display:flex;flex-wrap:wrap;gap:6px}.page-devtools .related-links a{padding:4px 12px;font-size:.75rem;border-radius:16px;background:var(--bg-hover);border:1px solid var(--border);color:var(--text-muted);transition:all .12s}.page-devtools .related-links a:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}@media (max-width: 768px){.page-devtools .page-header h1{font-size:1.15rem}.page-devtools .page-header p{font-size:.8rem}.page-devtools .tool-interface{padding:14px}}
