:root{color-scheme:light dark;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;--bg: #f6f6f9;--bg-soft: #eeeef4;--surface: #ffffff;--surface-2: #f0f0f5;--text: #15151b;--text-soft: #33333f;--muted: #5d5d6d;--border: #e1e1ea;--border-strong: #c8c8d6;--brand: #5344d4;--brand-hover: #4335bd;--brand-ink: #2f2590;--brand-weak: #edeaff;--on-brand: #ffffff;--ok: #127a45;--ok-weak: #e3f5eb;--warn: #8a4b00;--warn-weak: #fdf1e0;--danger: #b3261e;--danger-weak: #fdeceb;--shadow-sm: 0 1px 2px rgba(18, 18, 35, .06);--shadow: 0 1px 2px rgba(18, 18, 35, .05), 0 10px 30px rgba(18, 18, 35, .07);--radius-lg: 18px;--radius: 14px;--radius-sm: 10px;--checker: #dcdce6;--container: 1120px;--gutter: 16px;--header-h: 60px}@media(prefers-color-scheme:dark){:root{--bg: #0d0e12;--bg-soft: #14151b;--surface: #16171e;--surface-2: #1e1f28;--text: #f2f2f6;--text-soft: #dcdce6;--muted: #a3a3b3;--border: #292a35;--border-strong: #3a3b49;--brand: #9b8cff;--brand-hover: #b0a5ff;--brand-ink: #cfc8ff;--brand-weak: #211d3a;--on-brand: #15132b;--checker: #343541;--ok: #5fd39a;--ok-weak: #12291f;--warn: #f0b45f;--warn-weak: #2b2113;--danger: #ff8d86;--danger-weak: #2e1716;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 34px rgba(0, 0, 0, .35)}}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font);font-size:16px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg,video{max-width:100%;height:auto}h1,h2,h3,h4,p,ul,ol,figure{margin:0 0 .75em}h1,h2,h3,h4{line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--text);text-wrap:balance}h1{font-size:clamp(1.7rem,5vw,2.6rem);margin-bottom:.4em}.h2{font-size:clamp(1.3rem,3.4vw,1.75rem);margin-bottom:.6em}h3{font-size:1.1rem}p{color:var(--text-soft)}a{color:var(--brand-ink);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--brand-hover)}strong{color:var(--text)}hr{border:0;border-top:1px solid var(--border);margin:32px 0}::selection{background:var(--brand);color:var(--on-brand)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}.ico{flex:none;display:inline-block;vertical-align:-.15em}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.section{padding:32px 0}.section--tight{padding:20px 0}.lead{font-size:clamp(1rem,2.6vw,1.15rem);color:var(--muted);max-width:68ch}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-sm);text-decoration:none;transition:top .15s ease}.skip:focus{top:12px;color:var(--on-brand)}.hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--header-h)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:-.02em}.brand:hover{color:var(--text)}.brand__mark{color:var(--brand);width:30px;height:30px}.hdr__nav{display:flex;align-items:center;gap:4px}.hdr__nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:500;padding:8px 12px;border-radius:999px}.hdr__nav a:hover{color:var(--text);background:var(--surface-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:.98rem;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .08s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--brand);color:var(--on-brand)}.btn--primary:hover{background:var(--brand-hover);color:var(--on-brand)}.btn--secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn--secondary:hover{background:var(--surface-2);color:var(--text)}.btn--ghost{background:transparent;color:var(--muted)}.btn--ghost:hover{background:var(--surface-2);color:var(--text)}.btn--danger{background:var(--danger-weak);color:var(--danger)}.btn--block{width:100%}.btn--lg{min-height:52px;font-size:1.05rem;padding:0 28px}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;pointer-events:none}.btn-row{display:flex;flex-wrap:wrap;gap:10px}.hero{position:relative;padding:40px 0 24px;overflow:hidden}.hero:before{content:"";position:absolute;inset:auto -20% 40%;height:320px;background:radial-gradient(60% 60% at 50% 40%,var(--brand-weak),transparent 70%);pointer-events:none;z-index:-1}.hero__chips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.85rem;font-weight:500}.chip .ico{width:16px;height:16px;color:var(--ok)}.featured-grid{display:grid;gap:14px;grid-template-columns:1fr;margin-top:28px}.featured{display:flex;flex-direction:column;gap:8px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}a.featured:hover{color:var(--text);border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-2px)}.featured--soon{opacity:.72}.featured__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--brand-weak);color:var(--brand-ink);margin-bottom:4px}.featured__icon .ico{width:26px;height:26px}.featured__title{font-size:1.15rem;margin:0}.featured__text{color:var(--muted);font-size:.95rem;margin:0}.featured__cta{display:inline-flex;align-items:center;gap:6px;color:var(--brand-ink);font-weight:600;font-size:.95rem;margin-top:8px}.featured__cta .ico{width:18px;height:18px}.tool-grid{display:grid;gap:12px;grid-template-columns:1fr}.tool-card{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-decoration:none;transition:border-color .15s ease,background-color .15s ease}a.tool-card:hover{border-color:var(--brand);background:var(--surface);color:var(--text)}.tool-card--soon{opacity:.7}.tool-card__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--brand-weak);color:var(--brand-ink)}.tool-card__body{display:flex;flex-direction:column;gap:2px;min-width:0}.tool-card__title{font-weight:650;font-size:1rem;line-height:1.3}.tool-card__text{color:var(--muted);font-size:.88rem;line-height:1.45}.tool-card__arrow{color:var(--border-strong)}.tool-card__arrow .ico{width:20px;height:20px}a.tool-card:hover .tool-card__arrow{color:var(--brand)}.tool-grid--compact .tool-card{grid-template-columns:36px 1fr;padding:12px 14px}.tool-grid--compact .tool-card__icon{width:36px;height:36px;border-radius:10px}.tool-grid--compact .tool-card__icon .ico{width:20px;height:20px}.tool-grid--compact .tool-card__arrow,.tool-grid--compact .tool-card__text{display:none}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.01em;vertical-align:2px;background:var(--surface-2);color:var(--muted)}.badge--soon{background:var(--warn-weak);color:var(--warn)}.badge--ok{background:var(--ok-weak);color:var(--ok)}.badge--brand{background:var(--brand-weak);color:var(--brand-ink)}.steps{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:step}.steps__item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.steps__num{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:999px;background:var(--brand-weak);color:var(--brand-ink);font-weight:700;font-size:.9rem}.steps__text{color:var(--text-soft);font-size:.97rem;padding-top:2px}.faq{display:grid;gap:8px}.faq__item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.faq__q{cursor:pointer;padding:14px 44px 14px 16px;font-weight:600;list-style:none;position:relative;color:var(--text)}.faq__q::-webkit-details-marker{display:none}.faq__q:after{content:"";position:absolute;right:18px;top:50%;width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);transition:transform .15s ease}.faq__item[open] .faq__q:after{transform:translateY(-20%) rotate(-135deg)}.faq__a{padding:0 16px 16px;color:var(--muted);font-size:.95rem}.faq__a p{margin:0;color:var(--muted)}.callout{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface);margin:20px 0}.callout .ico{color:var(--brand-ink);width:20px;height:20px;margin-top:3px}.callout p{margin:0;font-size:.95rem;color:var(--text-soft)}.callout--warn{border-left-color:var(--warn)}.callout--warn .ico{color:var(--warn)}.ad-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:120px;margin:24px 0;padding:16px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);text-align:center}.ad-slot__label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ad-slot__note{font-size:.82rem;color:var(--muted)}.crumbs{padding:14px 0 0;font-size:.85rem;color:var(--muted)}.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.crumbs li+li:before{content:"/";margin-right:6px;color:var(--border-strong)}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}.form{display:grid;gap:16px}.field{display:grid;gap:6px}.field__label{font-weight:600;font-size:.95rem;color:var(--text)}.field__hint{font-size:.82rem;color:var(--muted)}.field__error{font-size:.85rem;color:var(--danger)}.input,.select,.textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:1rem}.textarea{min-height:120px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:3px solid var(--brand);outline-offset:1px;border-color:var(--brand)}.input[aria-invalid=true]{border-color:var(--danger)}.check{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:var(--muted)}.check input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--brand)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:220px;padding:28px 20px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);text-align:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.dropzone:hover,.dropzone.is-drag{border-color:var(--brand);background:var(--brand-weak)}.dropzone__icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:999px;background:var(--brand-weak);color:var(--brand-ink)}.dropzone__icon .ico{width:26px;height:26px}.dropzone__title{font-weight:600;color:var(--text)}.dropzone__hint{font-size:.85rem;color:var(--muted);max-width:42ch}.dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.progress{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress__bar{height:100%;width:0;border-radius:inherit;background:var(--brand);transition:width .25s ease}.result{display:grid;gap:14px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.result__stage{display:flex;align-items:center;justify-content:center;min-height:240px;border-radius:var(--radius);background-color:var(--surface-2);background-image:conic-gradient(var(--bg-soft) 25%,transparent 0 50%,var(--bg-soft) 0 75%,transparent 0);background-size:20px 20px;overflow:hidden}.result__stage img{max-height:60vh;object-fit:contain}.result__actions{display:grid;gap:10px}.prose{max-width:74ch;font-size:1rem}.prose h2{font-size:1.25rem;margin:32px 0 10px}.prose h3{font-size:1.05rem;margin:22px 0 8px}.prose p,.prose li{color:var(--text-soft)}.prose ul,.prose ol{padding-left:22px;margin-bottom:14px}.prose li{margin-bottom:6px}.prose .note{padding:14px 16px;border-radius:var(--radius-sm);background:var(--brand-weak);color:var(--text-soft);font-size:.95rem}.table-scroll{max-width:100%;margin:16px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose .table-scroll table{min-width:460px;margin:0}.prose table{width:100%;border-collapse:collapse;font-size:.94rem;margin:16px 0}.prose th,.prose td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-soft)}.prose th{color:var(--text);font-weight:600}.meta-line{display:flex;flex-wrap:wrap;gap:8px 18px;margin:8px 0 24px;font-size:.88rem;color:var(--muted)}.ftr{margin-top:48px;padding:36px 0 28px;border-top:1px solid var(--border);background:var(--bg-soft)}.ftr__top{display:grid;gap:24px;grid-template-columns:1fr}.ftr__brand p{font-size:.9rem;color:var(--muted);margin:8px 0 0;max-width:34ch}.ftr__cols{display:grid;gap:24px;grid-template-columns:1fr 1fr}.ftr__title{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-weight:700}.ftr__list{list-style:none;margin:0;padding:0;display:grid;gap:7px}.ftr__list a{color:var(--text-soft);text-decoration:none;font-size:.9rem}.ftr__list a:hover{color:var(--brand-ink);text-decoration:underline}.ftr__bottom{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:28px;padding-top:18px;border-top:1px solid var(--border);font-size:.82rem;color:var(--muted)}.ftr__bottom a{color:var(--muted)}.ftr__note{display:inline-flex;align-items:center;gap:6px}.ftr__note .ico{width:15px;height:15px;color:var(--ok)}.consent{position:fixed;left:12px;right:12px;bottom:12px;z-index:80;max-width:760px;margin:0 auto;padding:16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.consent[hidden]{display:none}.consent__title{font-size:.95rem;font-weight:700;margin:0 0 4px}.consent__text{font-size:.86rem;color:var(--muted);margin:0}.consent__text a{color:var(--brand-ink)}.consent__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.consent__actions .btn{flex:1 1 160px}.qr-types{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}.qr-types .chip{color:var(--text-soft);text-decoration:none;min-height:36px}.qr-types .chip:hover{border-color:var(--brand);color:var(--brand-ink)}.qr-types .chip.is-active{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}.qr-layout{display:grid;gap:16px;align-items:start}.qr-panel{display:grid;gap:16px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.form__fields{display:grid;gap:14px}.qr-settings{border-top:1px solid var(--border);padding-top:12px}.qr-settings__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;font-weight:650;list-style:none}.qr-settings__summary::-webkit-details-marker{display:none}.qr-settings__summary:after{content:"";flex:none;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s ease}.qr-settings[open] .qr-settings__summary:after{transform:rotate(-135deg)}.qr-settings__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}.qr-settings__grid .field--full{grid-column:1 / -1}.color{width:100%;height:44px;padding:4px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.input--file{padding:8px;font-size:.88rem;line-height:1.3}.qr-logo{display:flex;align-items:center;gap:10px;margin-top:8px}.qr-logo[hidden]{display:none}.qr-logo img{width:44px;height:44px;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.qr-preview{display:grid;gap:12px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.qr-preview__label{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}.qr-preview__stage{display:grid;place-items:center;min-height:280px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background-color:#fff;background-image:conic-gradient(#f2f2f5 25%,#fff 0 50%,#f2f2f5 0 75%,#fff 0);background-size:24px 24px}.qr-preview__empty{max-width:26ch;margin:0;color:#5d5d6d;font-size:.9rem;text-align:center}.qr-preview__empty[hidden],.qr-preview__canvas[hidden]{display:none}.qr-preview__canvas{display:flex;justify-content:center;width:100%}.qr-preview__canvas canvas{display:block;width:100%!important;max-width:320px;height:auto!important}.qr-preview__canvas svg{display:block;width:100%;max-width:320px;height:auto}.qr-status{min-height:22px;margin:-4px 0 0;font-size:.85rem;color:var(--muted)}.qr-download{display:grid;gap:10px}.qr-download .field{margin-bottom:2px}.qr-download__secondary .btn{flex:1 1 0}.qr-privacy{display:flex;gap:8px;margin:0;font-size:.8rem;line-height:1.5;color:var(--muted)}.qr-privacy .ico{width:16px;height:16px;margin-top:2px;color:var(--ok)}.qr-copy{margin:4px 0 0}.qr-copy h2{margin-top:0}.type-grid{display:grid;gap:10px;grid-template-columns:1fr}.type-card{display:grid;grid-template-columns:40px 1fr;column-gap:12px;align-items:center;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-decoration:none;transition:border-color .15s ease}.type-card:hover{border-color:var(--brand);color:var(--text)}.type-card__icon{grid-row:span 2;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;background:var(--brand-weak);color:var(--brand-ink)}.type-card__title{font-weight:650;line-height:1.3}.type-card__text{color:var(--muted);font-size:.84rem;line-height:1.4}.checklist{display:grid;gap:10px;margin:0;padding:0;list-style:none}.checklist li{display:flex;gap:10px;align-items:flex-start;color:var(--text-soft);font-size:.97rem}.checklist .ico{width:18px;height:18px;margin-top:3px;color:var(--ok)}.prose code{padding:2px 5px;border-radius:4px;background:var(--surface-2);font-family:var(--mono);font-size:.88em}@media(min-width:640px){.type-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.qr-layout{grid-template-columns:minmax(0,1fr) 360px;gap:20px}.qr-preview{position:sticky;top:calc(var(--header-h) + 12px)}.qr-settings__grid{grid-template-columns:1fr 1fr}}.palette-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"controls" "result" "photo";gap:16px;align-items:start}.palette-controls{grid-area:controls}.palette-result{grid-area:result;align-self:start}.palette-photo-card{grid-area:photo}.palette-panel{display:grid;gap:18px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.palette-panel__title{margin:4px 0 0;font-size:1.05rem}.color-row{display:grid;grid-template-columns:56px minmax(0,1fr) 44px;gap:8px;align-items:center}.color-row--pair{grid-template-columns:44px minmax(0,1fr)}.color--lg{height:46px}.input--mono{font-family:var(--mono);font-size:.95rem;letter-spacing:.03em;text-transform:uppercase}.btn--square{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0}.check--consent{margin-top:2px}.dropzone--compact{min-height:0;padding:18px 14px;gap:6px}.dropzone--compact .dropzone__icon{width:42px;height:42px}.dropzone--compact .dropzone__title{font-size:.92rem}.dropzone--compact .dropzone__hint{font-size:.8rem}.dropzone.is-disabled{opacity:.55;cursor:not-allowed}.dropzone.is-disabled:hover{border-color:var(--border-strong);background:var(--surface)}.palette-photo{display:grid;gap:10px}.palette-photo__preview{display:flex;align-items:center;gap:12px}.palette-photo__preview img{width:84px;height:64px;object-fit:cover;border:1px solid var(--border);border-radius:10px}.palette-result{display:grid;gap:12px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.palette-result__head{display:grid;gap:2px}.palette-result__label{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}.palette-result__hint{margin:0;font-size:.84rem;color:var(--muted)}.palette-result__source{margin:0;font-size:.82rem;color:var(--text-soft)}.palette-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.palette-swatches[data-count="1"]{grid-template-columns:minmax(0,1fr)}.palette-swatches[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.palette-swatches[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.palette-swatches[data-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.palette-swatches[data-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}.swatch{display:grid;gap:6px;padding:0;border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer}.swatch__color{display:block;height:96px;border-radius:12px;box-shadow:inset 0 0 0 1px #00000014;transition:transform .15s ease}.swatch:hover .swatch__color{transform:translateY(-2px)}.swatch__hex{font-family:var(--mono);font-size:.66rem;letter-spacing:.02em;text-align:center;color:var(--text-soft);white-space:nowrap}.palette-status{min-height:20px;margin:-2px 0 0;font-size:.85rem;color:var(--muted)}.palette-actions{display:grid;gap:10px}.contrast{display:grid;gap:14px;margin-top:14px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.contrast__controls{display:grid;gap:14px;align-content:start}.contrast__swap{justify-self:start}.contrast__result{display:grid;gap:12px;align-content:start}.contrast__ratio{display:flex;align-items:baseline;gap:10px;margin:0}.contrast__ratio-value{font-size:clamp(2rem,8vw,2.6rem);font-weight:750;letter-spacing:-.03em;color:var(--text)}.contrast__ratio-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.contrast__sample{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--sample-bg, #ffffff);color:var(--sample-fg, #111111)}.contrast__sample-line{margin:0 0 8px;color:inherit;font-size:1rem}.contrast__sample-large{margin:0;color:inherit;font-size:1.5rem;font-weight:700;line-height:1.25}.contrast__checks{display:grid;gap:8px;margin:0;padding:0;list-style:none}.contrast__check{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.88rem;color:var(--text-soft)}.contrast__badge{flex:none;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.is-pass .contrast__badge{background:var(--ok-weak);color:var(--ok)}.is-fail .contrast__badge{background:var(--danger-weak);color:var(--danger)}@media(min-width:640px){.palette-swatches[data-count="6"]{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(min-width:720px){.contrast{grid-template-columns:320px minmax(0,1fr)}}@media(min-width:960px){.palette-layout{grid-template-columns:minmax(0,1fr) 420px;grid-template-areas:"controls result" "photo result";gap:20px}.palette-result{position:sticky;top:calc(var(--header-h) + 12px)}.swatch__color{height:150px}}.bg-layout{display:grid;gap:16px;align-items:start}.bg-panel{display:grid;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.bg-panel__title{margin:0;font-size:1.05rem}.bg-dropzone{min-height:180px;padding:22px 16px}.bg-result{display:grid;gap:14px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.bg-result__head{display:grid;gap:4px}.bg-result__head .field__hint{margin:0}.bg-stage{min-width:0}.bg-empty{display:grid;place-items:center;min-height:230px;margin:0;padding:24px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);text-align:center}.bg-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.bg-compare.is-single{grid-template-columns:minmax(0,1fr)}.bg-figure{display:grid;gap:6px;min-width:0;margin:0}.bg-figure figcaption{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.bg-frame{display:grid;place-items:center;overflow:hidden;min-height:120px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.bg-frame img{display:block;width:100%;height:auto;max-height:460px;object-fit:contain}.bg-frame--checker{background-color:var(--surface);background-image:linear-gradient(45deg,var(--checker) 25%,transparent 25%),linear-gradient(-45deg,var(--checker) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker) 75%),linear-gradient(-45deg,transparent 75%,var(--checker) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.bg-progress{display:grid;gap:6px}.bg-progress__label{margin:0;font-size:.88rem;color:var(--text-soft)}.bg-progress__bar{width:100%;height:8px;accent-color:var(--brand)}.bg-status{min-height:20px;margin:0;font-size:.86rem;color:var(--muted)}.bg-status.is-done{color:var(--ok);font-weight:600}.bg-status.is-error{color:var(--danger)}.bg-actions{display:grid;gap:8px}@media(min-width:960px){.bg-layout{grid-template-columns:380px minmax(0,1fr);gap:20px}.bg-result{padding:18px}.bg-frame img{max-height:520px}}.img-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.img-panel,.img-result{min-width:0;display:grid;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.img-panel__title{margin:0;font-size:1.05rem}.img-dropzone{min-height:170px;padding:20px 16px}.img-settings{display:grid;gap:14px;margin:0;padding:16px 0 0;border:0;border-top:1px solid var(--border)}.img-settings[disabled]{opacity:.55}.img-settings__title{padding:0;font-size:.95rem;font-weight:700;color:var(--text)}.img-range{width:100%;accent-color:var(--brand)}.img-range__value{float:right;font-family:var(--mono);font-size:.85rem;color:var(--text-soft)}.img-progress{display:grid;gap:6px}.img-progress .field__hint{margin:0}.img-status{min-height:20px;margin:0;font-size:.86rem;color:var(--muted)}.img-status.is-done{color:var(--ok);font-weight:600}.img-status.is-warn{color:var(--warn);font-weight:600}.img-status.is-error{color:var(--danger)}.img-empty{display:grid;place-items:center;min-height:230px;margin:0;padding:24px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);text-align:center}.img-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.img-figure{display:grid;gap:6px;min-width:0;margin:0}.img-figure figcaption{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.img-frame{display:grid;place-items:center;overflow:hidden;min-height:120px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.img-frame img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}.img-frame--checker{background-color:var(--surface);background-image:linear-gradient(45deg,var(--checker) 25%,transparent 25%),linear-gradient(-45deg,var(--checker) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker) 75%),linear-gradient(-45deg,transparent 75%,var(--checker) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.img-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.img-stat{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.img-stat dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--muted)}.img-stat dd{margin:2px 0 0;font-size:1rem;font-weight:650;color:var(--text)}.img-stat--accent dd{color:var(--ok)}.img-stat dd.is-negative{color:var(--danger)}.img-actions{display:grid;gap:8px}.size-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}button.chip{font:inherit;font-size:.85rem;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}button.chip:hover{border-color:var(--border-strong);color:var(--text)}button.chip.is-active{border-color:var(--brand);background:var(--brand-weak);color:var(--brand-ink)}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:156px;margin-top:6px}.focus-grid__dot{position:relative;aspect-ratio:1;padding:0;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);cursor:pointer}.focus-grid__dot:hover{border-color:var(--brand)}.focus-grid__dot.is-active{border-color:var(--brand);background:var(--brand-weak)}.focus-grid__dot.is-active:after{content:"";position:absolute;inset:34%;border-radius:50%;background:var(--brand)}.img-compare.is-single{grid-template-columns:minmax(0,1fr)}.img-frame--heic{min-height:220px;background:radial-gradient(circle at 50% 30%,var(--brand-weak),var(--surface-2) 70%)}.heic-card{display:grid;place-items:center;gap:6px;padding:28px 18px;text-align:center}.heic-card__icon{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:16px;background:var(--surface);border:1px solid var(--border);color:var(--brand-ink)}.heic-card__icon .ico{width:30px;height:30px}.heic-card__name{max-width:100%;font-weight:650;word-break:break-all}.heic-card__size{font-size:.85rem;color:var(--muted)}.btn--sm{padding:8px 12px;font-size:.85rem}.fav-grid{display:flex;flex-wrap:wrap;gap:14px}.fav-item{display:grid;gap:6px;justify-items:center;margin:0}.fav-item__box{display:grid;place-items:center;width:84px;height:84px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background-color:var(--surface);background-image:linear-gradient(45deg,var(--checker) 25%,transparent 25%),linear-gradient(-45deg,var(--checker) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker) 75%),linear-gradient(-45deg,transparent 75%,var(--checker) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.fav-item__box img{display:block;max-width:64px;max-height:64px}.fav-item figcaption{font-size:.73rem;color:var(--muted)}.fav-downloads{display:flex;flex-wrap:wrap;gap:8px}.fav-code{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.fav-code__title{margin:0;font-size:1rem}.code-block{max-width:100%;margin:0;padding:12px 14px;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-family:var(--mono);font-size:.78rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.color-line{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.color-line .input--mono{flex:1 1 140px;width:auto;min-width:0}.color-line .input--color{flex:none}.input--color{width:58px;height:42px;padding:4px}.pick-stage{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface-2);line-height:0}.pick-canvas{display:block;width:auto;height:auto;max-width:100%;max-height:72vh;margin:0 auto;cursor:crosshair;user-select:none;-webkit-user-select:none;touch-action:pan-y}.pick-canvas:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}.pick-marker{position:absolute;width:20px;height:20px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000000a6,inset 0 0 0 1px #000000a6;pointer-events:none}.pick-loupe{position:absolute;z-index:2;display:block;width:104px;height:104px;overflow:hidden;border:2px solid #fff;border-radius:50%;background:#000;box-shadow:0 6px 20px #00000059,0 0 0 1px #0000004d;pointer-events:none}.pick-loupe canvas{display:block;width:100%;height:100%}.pick-current{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.pick-current__swatch{flex:none;width:64px;height:64px;border:1px solid rgba(0,0,0,.15);border-radius:14px}.pick-current__meta{display:grid;gap:4px;min-width:0}.pick-hex{font-family:var(--mono);font-size:1.35rem;font-weight:700;letter-spacing:.02em}.pick-values{font-size:.8rem;color:var(--muted)}.pick-history-block{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.pick-history{display:flex;flex-wrap:wrap;gap:8px}.pick-history__item{min-width:76px;padding:10px 8px;border:1px solid rgba(0,0,0,.15);border-radius:10px;font-family:var(--mono);font-size:.78rem;font-weight:700;cursor:pointer;transition:transform .15s ease}.pick-history__item:hover{transform:translateY(-1px)}.contrast-inputs{display:grid;gap:12px}.contrast-actions{display:flex;flex-wrap:wrap;gap:8px}.contrast-preview{display:grid;gap:10px;padding:18px;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:var(--radius)}.contrast-preview p{margin:0}.contrast-preview__lead{font-size:1.45rem;font-weight:800;line-height:1.25}.contrast-preview__large{font-size:24px}.contrast-preview__normal{font-size:16px}.contrast-preview__small{font-size:14px}.contrast-ratio{display:flex;align-items:baseline;gap:10px}.contrast-ratio__value{font-family:var(--mono);font-size:2rem;font-weight:800}.contrast-ratio__label{font-size:.85rem;color:var(--muted)}.contrast-checks{display:grid;gap:8px;margin:10px 0 0}.contrast-check{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.contrast-check dt{display:grid;gap:2px;font-size:.9rem;font-weight:600}.contrast-check dt small{font-size:.76rem;font-weight:400;color:var(--muted)}.contrast-check dd{flex:none;margin:0}.contrast-badge{display:inline-block;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.74rem;font-weight:700;white-space:nowrap}.contrast-badge.is-pass{border-color:var(--ok);color:var(--ok)}.contrast-badge.is-fail{border-color:var(--danger);color:var(--danger)}.grad-stops{display:grid;gap:12px}.grad-stop{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px 10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.grad-stop>.input--color{grid-row:1 / span 2;width:56px;height:52px}.grad-stop>.input--mono{grid-column:2;width:100%}.grad-stop__pos{display:grid;grid-template-columns:1fr auto;gap:4px 8px;grid-column:1 / -1;align-items:center}.grad-stop__pos .field__hint{margin:0}.grad-stop__pos .img-range{grid-column:1 / -1}.grad-stop__remove{grid-column:1 / -1;justify-self:start}.grad-preview{min-height:190px;aspect-ratio:16 / 9;border:1px solid var(--border);border-radius:var(--radius)}.shadow-alpha{display:grid;grid-template-columns:1fr auto;gap:4px 10px;flex:1 1 160px;align-items:center}.shadow-alpha .field__hint{margin:0}.shadow-alpha .img-range{grid-column:1 / -1;grid-row:2}.shadow-corners{display:grid;gap:12px}.shadow-stage{display:grid;place-items:center;padding:48px 24px;border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(circle at 30% 20%,rgba(108,92,231,.16),transparent 55%),var(--surface-2)}.shadow-card{display:grid;gap:8px;width:min(100%,320px);padding:24px;background:#fff;color:#1c1b22;transition:box-shadow .15s ease,border-radius .15s ease}.shadow-card__title{color:#1c1b22;font-size:1.05rem;font-weight:700}.shadow-card__text{font-size:.86rem;line-height:1.45;color:#5b5866}@media(min-width:560px){.shadow-corners{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:560px){.contrast-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:960px){.img-layout{grid-template-columns:380px minmax(0,1fr);gap:20px}.img-frame img{max-height:480px}}@media(min-width:640px){.featured-grid{grid-template-columns:repeat(3,1fr)}.tool-grid{grid-template-columns:repeat(2,1fr)}.ftr__top{grid-template-columns:1.2fr 2fr}.ftr__cols{grid-template-columns:repeat(3,1fr)}.consent{left:24px;right:24px}.consent__actions .btn{flex:0 0 auto}}@media(min-width:960px){:root{--gutter: 24px;--header-h: 68px}.section{padding:44px 0}.hero{padding:64px 0 32px}.tool-grid{grid-template-columns:repeat(3,1fr)}.tool-grid--compact{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(3,1fr)}.steps__item{flex-direction:column;gap:10px}.ftr__cols{grid-template-columns:repeat(4,1fr)}.result__actions{grid-template-columns:1fr auto auto;align-items:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
