/* Shared SEO mini-app controls (fractal, spirograph, cutout, color tools, photo map). *//* --- Shell --- */.color-wheel-landing-app,.color-palette-generator-landing-app,.gradient-editor-landing-app,.photo-map-landing-app,.spirograph-landing-app {    align-items: start;    gap: 12px 16px;}.fractal-landing-app {    align-items: start;}.gradient-editor-landing-app > .filter-landing-stage,.photo-map-landing-app > .filter-landing-stage {    align-self: start;    height: auto;}@media (min-width: 961px) {    .gradient-editor-landing-app > .filter-landing-controls,    .photo-map-landing-app > .filter-landing-controls {        grid-row: 1;        align-self: start;    }}/* --- Soft stage (color tools + photo map) --- */.color-wheel-landing-stage,.color-palette-generator-landing-stage,.gradient-editor-landing-stage,.photo-map-landing-stage {    position: relative;    box-shadow: none;    min-height: 0;    overflow: visible;    padding: clamp(12px, 2vw, 20px);    background: linear-gradient(160deg, #f4f6fb, #e8eef8);}.dark .color-wheel-landing-stage,.dark .color-palette-generator-landing-stage,.dark .gradient-editor-landing-stage,.dark .photo-map-landing-stage {    background: linear-gradient(160deg, #121722, #0d1118);}.color-wheel-landing-stage,.color-palette-generator-landing-stage {    background: radial-gradient(circle at 12% 0%, rgba(255, 255, 255, 0.7), transparent 42%), linear-gradient(160deg, #f4f6fb, #e8eef8);}.dark .color-wheel-landing-stage,.dark .color-palette-generator-landing-stage {    background: radial-gradient(circle at 12% 0%, rgba(80, 100, 140, 0.28), transparent 42%), linear-gradient(160deg, #121722, #0d1118);}.color-wheel-landing-controls,.color-palette-generator-landing-controls {    gap: 18px;}/* --- Field row (label | control) --- */.fractal-landing-field {    display: grid;    grid-template-columns: auto minmax(0, 1fr);    align-items: center;    column-gap: 8px;    row-gap: 8px;}    .fractal-landing-field[hidden] {        display: none;    }    .fractal-landing-field > .filter-landing-controls-label {        grid-column: 1;    }    .fractal-landing-field > .fractal-landing-select {        grid-column: 2;        width: 100%;        max-width: 100%;    }    .fractal-landing-field > .fractal-landing-gradient-row {        grid-column: 1 / -1;    }    .fractal-landing-field > .fractal-landing-complex {        grid-column: 2;        display: flex;        align-items: center;        gap: 6px;        min-width: 0;    }/* --- Select + number --- */.fractal-landing-select,.fractal-landing-number {    width: 100%;    margin: 0;    padding: 9px 12px;    border: 1px solid rgba(20, 24, 32, 0.12);    border-radius: 12px;    background: rgba(255, 255, 255, 0.82);    color: var(--main-200);    font: inherit;    font-size: 0.9rem;}.fractal-landing-number {    padding: 9px 10px;    font-variant-numeric: tabular-nums;}.fractal-landing-select option {    color: #111;    background: #fff;}.dark .fractal-landing-select,.dark .fractal-landing-number {    border-color: rgba(255, 255, 255, 0.14);    background: rgba(255, 255, 255, 0.08);    color: rgba(255, 255, 255, 0.92);}.dark .fractal-landing-number {    background: rgba(15, 23, 42, 0.55);}.fractal-landing-complex-sep,.fractal-landing-complex-unit {    flex: 0 0 auto;    color: var(--main-200);    font-size: 0.9rem;    opacity: 0.8;}.dark .fractal-landing-complex-sep,.dark .fractal-landing-complex-unit {    color: rgba(255, 255, 255, 0.72);}@media (max-width: 600px) {    body.filter-app-mode .fractal-landing-select {        padding: 7px 10px;    }}/* --- Toolbar --- */.fractal-landing-toolbar,.spirograph-landing-toolbar {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 8px;    margin: 2px 0 6px;    width: 100%;}@media (max-width: 600px) {    .fractal-landing-toolbar,    .spirograph-landing-toolbar {        gap: 6px;        margin-bottom: 4px;    }        .fractal-landing-toolbar .filter-landing-preset--icon,        .spirograph-landing-toolbar .filter-landing-preset--icon {            width: 34px;            height: 34px;        }}/* --- Slider rows --- */.cutout-slider-row {    display: flex;    flex-direction: row;    align-items: center;    gap: 0.75rem;    width: 100%;    min-width: 0;    box-sizing: border-box;}    .cutout-slider-row .filter-landing-controls-label {        flex: 0 0 auto;        margin: 0;        white-space: nowrap;        min-width: 6.5rem;    }    .cutout-slider-row input[type="range"] {        flex: 1 1 auto;        min-width: 0;        width: auto;        margin: 0;    }/* --- Range − / + steppers --- */.landing-slider-stepper {    display: flex;    flex-direction: row;    align-items: center;    gap: 0.35rem;    flex: 1 1 auto;    min-width: 0;    width: auto;    box-sizing: border-box;}    .landing-slider-stepper input[type="range"] {        flex: 1 1 auto;        min-width: 0;        width: auto;        margin: 0;    }.landing-slider-stepper__btn {    appearance: none;    flex: 0 0 auto;    box-sizing: border-box;    width: 1.55rem;    height: 1.55rem;    padding: 0;    margin: 0;    border: 1px solid rgba(15, 23, 42, 0.18);    border-radius: 999px;    background: #ffffff;    color: #0f172a;    font: inherit;    font-size: 0.95rem;    font-weight: 700;    line-height: 1;    cursor: pointer;    display: inline-flex;    align-items: center;    justify-content: center;    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;}    .landing-slider-stepper__btn:hover:not(:disabled) {        border-color: rgba(15, 23, 42, 0.35);        background: #f8fafc;    }    .landing-slider-stepper__btn:disabled {        opacity: 0.4;        cursor: default;    }.dark .landing-slider-stepper__btn {    border-color: rgba(255, 255, 255, 0.16);    background: rgba(255, 255, 255, 0.08);    color: rgba(255, 255, 255, 0.92);}    .dark .landing-slider-stepper__btn:hover:not(:disabled) {        border-color: rgba(255, 255, 255, 0.32);        background: rgba(255, 255, 255, 0.14);    }.filter-landing-prop .landing-slider-stepper,.filter-landing-controls .landing-slider-stepper {    width: 100%;}    .filter-landing-prop .landing-slider-stepper input[type="range"],    .filter-landing-prop .landing-slider-stepper .filter-landing-prop-range {        width: auto;    }.app-slider-val,.spirograph-val {    flex: 0 0 2.75rem;    text-align: right;    font-variant-numeric: tabular-nums;    opacity: 0.85;    font-size: 0.9rem;}@media (max-width: 600px) {    .cutout-slider-row .filter-landing-controls-label {        min-width: 5rem;    }}/* --- Checks --- */.app-check,.cutout-check,.spirograph-check-row {    display: flex;    align-items: center;    gap: 0.5rem;    margin: 0.1rem 0;    cursor: pointer;    font-weight: 600;    color: var(--main-200);}    .app-check input,    .cutout-check input,    .spirograph-check-row input {        width: 1.05rem;        height: 1.05rem;        margin: 0;    }.spirograph-color-pair {    display: flex;    flex-wrap: wrap;    align-items: center;    gap: 0.5rem 0.75rem;    width: 100%;}/* --- Chip rows (harmonies) --- */.color-wheel-harmonies,.color-palette-harmonies {    display: flex;    flex-wrap: wrap;    gap: 8px;    margin-bottom: 0;}    .color-wheel-harmonies .landing-cta,    .color-palette-harmonies .landing-cta {        padding: 7px 12px;        font-size: 0.9rem;        min-height: 0;        border-radius: 999px;    }.color-wheel-harmony-select,.color-palette-harmony-select {    display: none;    width: 100%;}/* --- Count row --- */.color-wheel-count-row,.color-palette-count-row,.gradient-editor-count-row {    display: flex;    align-items: center;    justify-content: space-between;    gap: 8px;    margin-bottom: 0;}    .color-wheel-count-row .fractal-landing-select,    .color-palette-count-row .fractal-landing-select,    .gradient-editor-count-row .fractal-landing-select {        width: auto;        min-width: 4.25rem;        padding: 4px 8px;        font-size: 0.9rem;        border-radius: 8px;    }/* --- HEX/RGB fields + copy --- */.color-wheel-fields,.gradient-editor-fields {    display: grid;    gap: 8px;}.color-wheel-field,.gradient-editor-field {    display: grid;    grid-template-columns: 3.1rem minmax(0, 1fr) auto;    align-items: center;    gap: 6px;    font-size: 0.72rem;    font-weight: 700;    letter-spacing: 0.04em;    text-transform: uppercase;    color: var(--landing-muted, #4b5568);}.color-wheel-field-row,.gradient-editor-field-row {    display: contents;}.color-wheel-field input,.gradient-editor-field input {    width: 100%;    min-width: 0;    padding: 5px 8px;    border: 1px solid rgba(16, 24, 40, 0.14);    border-radius: 8px;    background: #fff;    color: var(--main-100);    font: inherit;    font-size: 0.9rem;    font-weight: 600;    text-transform: none;    letter-spacing: 0;}    .color-wheel-field input[readonly],    .gradient-editor-field input[readonly] {        opacity: 0.88;    }.dark .color-wheel-field input,.dark .gradient-editor-field input {    border-color: rgba(255, 255, 255, 0.14);    background: #171c26;    color: #f5f5f5;}.color-wheel-copy,.gradient-editor-copy {    display: inline-flex;    align-items: center;    justify-content: center;    width: 36px;    min-width: 36px;    height: 36px;    min-height: 36px;    padding: 0;    border-radius: 8px;}    .color-wheel-copy svg,    .gradient-editor-copy svg {        display: block;        width: 20px;        height: 20px;        fill: currentColor;    }    .color-wheel-copy.is-copied,    .gradient-editor-copy.is-copied {        color: var(--landing-accent, #2563eb);    }.color-wheel-landing-controls .filter-landing-actions-2 .landing-cta,.color-palette-generator-landing-controls .filter-landing-actions-2 .landing-cta,.color-palette-export .landing-cta,.gradient-editor-landing-controls .filter-landing-actions-3 .landing-cta {    min-height: 38px;    padding: 8px 14px;    font-size: 0.9rem;}/* --- Narrow layout --- */@media (max-width: 960px) {    .color-wheel-landing-app,    .color-palette-generator-landing-app,    .gradient-editor-landing-app {        grid-template-columns: minmax(0, 1fr);        gap: 10px;    }    .color-wheel-landing-controls,    .color-palette-generator-landing-controls,    .gradient-editor-landing-controls {        padding-inline-start: 0;    }    .color-wheel-landing-stage,    .color-palette-generator-landing-stage,    .gradient-editor-landing-stage,    .photo-map-landing-stage {        padding: 8px;    }}@media (max-width: 600px) {    .seo-page:has(.app-landing-app) {        width: 100%;    }        .seo-page:has(.app-landing-app) .seo-page-hero--filter-demo {            padding: 12px 0 0;            border-inline: 0;            border-radius: 0;            overflow: visible;        }        .seo-page:has(.app-landing-app) .seo-page-hero-copy,        .seo-page:has(.app-landing-app) .filter-landing-controls,        .seo-page:has(.app-landing-app) .seo-page-section,        .seo-page:has(.app-landing-app) .seo-page-cta-band {            padding-inline: max(12px, env(safe-area-inset-left), env(safe-area-inset-right));        }    .color-wheel-harmonies,    .color-palette-harmonies {        display: none;    }    .color-wheel-harmony-select,    .color-palette-harmony-select {        display: block;    }}/* --- Filter-app compact panel --- */@media (max-width: 960px) {    body.filter-app-mode .app-landing-app {        grid-template-rows: minmax(0, 1fr) auto;        min-height: 0;    }        body.filter-app-mode .app-landing-app > .filter-landing-stage {            min-height: 0;            height: 100%;            overflow: hidden;        }        body.filter-app-mode .app-landing-app > .filter-landing-controls {            z-index: 1;            max-height: min(34vh, 220px);            overflow: auto;            min-height: 0;            overscroll-behavior: contain;            padding-bottom: max(8px, env(safe-area-inset-bottom));        }}@media (max-width: 600px) {    body.filter-app-mode .app-landing-app > .filter-landing-controls {        max-height: min(32vh, 200px);        gap: 8px;    }}