.fp { --fp-ink:#202735; --fp-navy:#293a60; --fp-muted:#596477; --fp-line:#e2e7ed; font-family:'Titillium Web',Tahoma,Arial,sans-serif; color:var(--fp-ink); font-size:16px; line-height:1.4; text-align:left; }
.fp * { box-sizing:border-box; }
.fp [hidden] { display:none!important; }
.fp button,.fp select,.fp input { font:inherit; }
.fp button { cursor:pointer; }
.fp button:disabled { opacity:.55; cursor:wait; }
.fp :is(button,input,select,canvas,a):focus-visible { outline:3px solid #547bc5; outline-offset:3px; }
.fp button,.fp select { border:1px solid var(--fp-line); border-radius:8px; background:white; color:var(--fp-navy); padding:9px 14px; min-height:44px; }
.fp svg { width:24px; height:24px; flex:none; vertical-align:middle; }
.fp button:hover { background:#f1f4f8; }
.fp .fp-primary { display:flex; align-items:center; justify-content:center; gap:12px; background:var(--fp-navy); color:white; border-color:var(--fp-navy); font-weight:600; }
.fp .fp-primary:hover { background:#203051; }
.fp p { margin:0; }
.fp h2 { font-size:28px; font-weight:600; line-height:1.2; letter-spacing:-.4px; margin:0; }
.fp h3 { font-size:18px; font-weight:600; margin:0; }
.fp-muted { color:var(--fp-muted); font-size:14px; }
.fp .fp-icon-button { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; padding:0; flex:none; border:0; background:transparent; }
.fp .fp-close { border-radius:50%; background:#f5f6f8; }
.fp-sr-only { position:absolute!important; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* One invitation in the buying panel; the saved price lives inside this control. */
#fitted-print-entry { margin:18px 0; }
.fp .fp-entry-button { width:100%; display:flex; align-items:center; gap:16px; padding:16px 18px; text-align:left; background:#f6f8f6; border:1px solid #dce5df; border-radius:12px; color:var(--fp-ink); box-shadow:0 1px 2px #20273504; }
.fp .fp-entry-button:hover { background:#eef3ef; border-color:#a4b8aa; }
.fp-entry-art { width:46px; height:56px; display:grid; place-items:center; flex:none; }
.fp-entry-art svg { width:48px; height:56px; }
.fp-entry-copy { flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.fp-entry-copy strong { font-size:18px; font-weight:600; line-height:1.25; }
.fp-entry-copy>span { font-size:14px; color:#59685e; line-height:1.35; }
.fp-entry-action { color:#426957; flex:none; width:32px; height:32px; border:1px solid #d6e1d9; border-radius:50%; background:white; display:grid; place-items:center; }
.fp-entry-action svg { width:17px; height:17px; }
.fp .fp-entry-note { margin:8px 0 0; }

/* Matches the existing native storefront dialogs: soft backdrop, round close, phone sheet. */
.fp-dialog { border:0; border-radius:16px; padding:0; width:min(1040px,calc(100vw - 48px)); max-width:none; height:min(740px,calc(100dvh - 48px)); max-height:none; overflow:hidden; box-shadow:0 24px 70px #20273530,0 5px 16px #2027351a; background:white; }
.fp-dialog::backdrop,.fp-popover::backdrop { background:rgb(32 39 53 / .42); }
.fp-dialog[open] { display:flex; flex-direction:column; }
.fp-startup { flex:1; min-height:0; display:flex; flex-direction:column; gap:24px; padding:28px 32px 20px; color:#596477; overflow:hidden; }
.fp-startup[hidden] { display:none; }
.fp-dialog[data-opening] .fp-body,.fp-dialog[data-opening] .fp-opening-row,.fp-dialog[data-opening] .fp-footer,.fp-dialog[data-opening] .fp-header>button:not(.fp-close) { display:none!important; }
.fp.fp-dialog[data-opening] { height:min(580px,calc(100dvh - 48px)); }
.fp-startup-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; flex:1; min-height:0; }
.fp-skeleton-sources { border-right:1px solid var(--fp-line); padding:12px 28px 0 0; display:flex; flex-direction:column; justify-content:center; gap:28px; }
.fp-skeleton-source { display:flex; align-items:center; flex-direction:column; gap:10px; }
.fp-skeleton-art { height:60px; color:#b5c3bd; margin-bottom:4px; opacity:.65; }
.fp-skeleton-art svg { width:60px; height:60px; }
.fp-skeleton-button,.fp-skeleton-line { display:block; border-radius:6px; background:#edf0f2; flex:none; }
.fp-skeleton-button { width:100%; height:44px; }
.fp-skeleton-line { width:72%; height:8px; border-radius:4px; }
.fp-skeleton-short { width:54%; }
.fp-skeleton-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 16px; align-content:center; }
.fp-skeleton-tile { min-width:0; }
.fp-skeleton-photo { aspect-ratio:1.25; border-radius:8px; display:grid; place-items:center; background:linear-gradient(145deg,#eef2f0,#e8ecf0); color:#c5cece; }
.fp-skeleton-photo svg { width:32px; height:32px; opacity:.55; }
.fp-skeleton-tile .fp-skeleton-line { margin-top:12px; width:64%; }
.fp-skeleton-photo,.fp-skeleton-window,.fp-skeleton-button { position:relative; overflow:hidden; }
.fp-skeleton-photo::after,.fp-skeleton-window::after,.fp-skeleton-button::after { content:''; position:absolute; inset:0; background:linear-gradient(105deg,transparent 20%,#ffffffa6 48%,transparent 76%); transform:translateX(-110%); }
.fp-startup-caption { display:flex; align-items:center; justify-content:center; gap:9px; min-height:22px; font-size:14px; flex:none; }
.fp-startup-caption p { margin:0; }
.fp-startup-dot { width:6px; height:6px; border-radius:50%; background:#849d91; }
.fp-skeleton-frame { display:none; min-height:0; flex-direction:column; justify-content:center; align-items:center; gap:24px; }
.fp-skeleton-mount { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; width:min(440px,85%); aspect-ratio:1.5; padding:24px; background:#fafaf7; border:10px solid #cdd4d1; box-shadow:0 5px 12px #293a6009; }
.fp-skeleton-mount[hidden] { display:none; }
.fp-skeleton-window { display:block; min-width:0; min-height:0; background:#e6ece8; border:1px solid #dce3df; }
.fp-skeleton-window:only-child { grid-column:1/-1; }
.fp-skeleton-controls { display:flex; gap:12px; width:min(440px,85%); }
.fp-skeleton-controls .fp-skeleton-button { flex:1; height:32px; }
.fp-startup[data-scene=frame] .fp-startup-layout { display:flex; }
.fp-startup[data-scene=frame] .fp-skeleton-gallery,.fp-startup[data-scene=frame] .fp-skeleton-sources { display:none; }
.fp-startup[data-scene=frame] .fp-skeleton-frame { display:flex; flex:1; }
.fp-dialog[data-opening=error] .fp-startup { align-items:center; justify-content:center; }
.fp-dialog[data-opening=error] .fp-startup-layout,.fp-dialog[data-opening=error] .fp-startup-dot { display:none; }
.fp-frame-stage[data-loading] { flex-direction:column; gap:12px; padding:24px 0; }
.fp-frame-stage[data-loading]>p { padding:0 20px; margin:0; font-size:14px; }
@media(prefers-reduced-motion:no-preference) {
 .fp-skeleton-photo::after,.fp-skeleton-window::after,.fp-skeleton-button::after { animation:fp-skeleton-sheen 2s ease-in-out infinite; animation-delay:calc(var(--tile,0)*90ms); }
 .fp-startup-dot { animation:fp-skeleton-breathe 1.5s ease-in-out infinite; }
 @keyframes fp-skeleton-sheen { to { transform:translateX(110%); } }
 @keyframes fp-skeleton-breathe { 50% { opacity:.35; transform:scale(.75); } }
}
@media(max-width:767px) {
 .fp.fp-dialog[data-opening] { height:calc(100dvh - 16px); min-height:0!important; }
 .fp-startup { padding:18px; gap:18px; }
 .fp-startup-layout { display:flex; flex-direction:column; gap:24px; }
 .fp-skeleton-sources { border:0; padding:0; flex:none; }
 .fp-skeleton-source { display:grid; grid-template-columns:124px 1fr; gap:8px 16px; }
 .fp-skeleton-source>.fp-skeleton-button { grid-row:1/3; }
 .fp-skeleton-source>.fp-skeleton-line { width:100%; }
 .fp-skeleton-source>.fp-skeleton-short { width:74%; }
 .fp-skeleton-phone,.fp-skeleton-art { display:none; }
 .fp-skeleton-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 12px; align-content:start; overflow:hidden; }
 .fp-skeleton-tile:nth-child(n+5) { display:none; }
 .fp-skeleton-mount { width:100%; padding:16px; border-width:8px; gap:8px; }
 .fp-frame-stage .fp-skeleton-mount { width:85%; }
 .fp-skeleton-controls { width:100%; gap:8px; }
 .fp-startup-caption { font-size:13px; }
}
.fp-header { display:flex; align-items:center; gap:10px; padding:16px 24px; flex:none; border-bottom:1px solid var(--fp-line); }
.fp-header h2 { flex:1; }
.fp-header h2:focus { outline:none; }
.fp-body { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 0; flex:1; min-height:0; overflow:hidden; }
.fp-workspace { display:flex; flex-direction:column; padding:16px 24px 12px; gap:10px; min-width:0; min-height:0; overflow:auto; }
/* Orientation is a small menu on the photo, rather than an extra toolbar. */
.fp-orientation { position:absolute; top:8px; left:8px; display:flex; align-items:center; border-radius:7px; background:rgb(255 255 255 / .94); box-shadow:0 1px 4px #20273514; }
.fp-orientation>span { position:absolute; left:9px; display:flex; pointer-events:none; }
.fp .fp-orientation select { appearance:none; background:transparent; border:0; min-height:44px; padding:8px 28px 8px 34px; font-size:14px; cursor:pointer; }
.fp-orientation>svg { position:absolute; right:8px; width:14px; height:14px; pointer-events:none; }
.fp-orientation>span svg { width:19px; height:19px; }
.fp-preview { background:#e9ecef; border-radius:10px; position:relative; min-height:150px; flex:1; overflow:hidden; }
.fp-preview canvas { position:absolute; width:100%; height:100%; inset:0; touch-action:none; }
.fp .fp-compare { position:absolute; top:8px; right:8px; display:flex; align-items:center; gap:6px; border:0; min-height:44px; padding:6px 9px; background:rgba(255,255,255,.94); font-size:14px; box-shadow:0 1px 4px #20273514; }
.fp-compare svg { width:18px; height:18px; }
.fp .fp-compare[aria-pressed=true] { background:var(--fp-navy); color:white; }
.fp-crop-hint { position:absolute; bottom:58px; left:50%; transform:translateX(-50%); display:flex; gap:6px; align-items:center; padding:4px 10px; background:#fff; color:#394456; border-radius:20px; font-size:14px; white-space:nowrap; pointer-events:none; box-shadow:0 1px 5px #20273514; }
.fp-crop-hint svg { width:15px; height:15px; }
.fp-fit-row { display:flex; align-items:center; gap:8px; flex:none; }
.fp-segment { display:flex; padding:3px; background:#f1f3f6; border-radius:9px; flex:1; }
.fp .fp-segment button { padding:6px 10px; min-height:38px; flex:1; border:0; background:transparent; color:var(--fp-muted); white-space:nowrap; }
.fp .fp-segment button[aria-pressed=true] { background:white; color:var(--fp-navy); box-shadow:0 1px 4px #20273520; font-weight:600; }
/* The same controls form a Mac-style sidebar or a phone tray. */
.fp-editing .fp-body { grid-template-columns:minmax(0,1fr) 276px; }
.fp-edit-panel { width:276px; min-width:0; overflow:auto; padding:12px 16px; border-left:1px solid var(--fp-line); background:#fbfcfd; visibility:hidden; opacity:0; transform:translateX(16px); }
.fp-editing .fp-edit-panel { visibility:visible; opacity:1; transform:none; }
.fp-edit-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:4px; }
.fp-edit-heading h3 { font-size:18px; }
.fp-tools { display:flex; flex-direction:column; gap:2px; }
.fp-tool { position:relative; min-width:0; padding-bottom:4px; border-bottom:1px solid var(--fp-line); }
.fp-tool:last-child { border:0; }
.fp .fp-tools [data-tool] { display:flex; align-items:center; gap:10px; width:100%; position:relative; padding:6px 0; border:0; background:transparent; font-size:16px; line-height:1.15; color:var(--fp-ink); min-height:44px; text-align:left; }
.fp-tools svg { width:22px; height:22px; flex:none; }
.fp-tools i { display:none; width:5px; height:5px; border-radius:50%; background:#426957; }
.fp-tools .fp-adjusted i { display:block; }
.fp .fp-tools [data-tool][data-tool=auto] { border:1px solid var(--fp-line); border-radius:8px; padding:10px; background:white; }
.fp .fp-tools [data-tool][data-tool=auto][aria-pressed=true] { background:#eaf2ed; border-color:#b8cdbf; color:#315b43; }
.fp-auto-state { margin-left:auto; font-size:14px; color:var(--fp-muted); }
.fp-tool-chevron { margin-left:auto; display:flex; transition:transform .15s; }
.fp-tool-chevron svg { width:16px; height:16px; }
.fp-active-tool .fp-tool-chevron { transform:rotate(180deg); }
.fp-field { display:none; }
.fp-active-tool .fp-field { display:grid; gap:4px; padding-bottom:4px; }
.fp-tool[data-control=auto] .fp-field { display:none; }
.fp-adjust-picker { display:none; }
.fp-adjust-row { position:relative; height:36px; background:#edf0f3; border-radius:6px; overflow:hidden; }
.fp-adjust-row label,.fp-adjust-row output { position:absolute; z-index:1; top:50%; transform:translateY(-50%); margin:0; line-height:20px; font-size:14px; pointer-events:none; }
.fp-adjust-row label { left:10px; color:#394456; }
.fp-adjust-row output { right:10px; color:var(--fp-muted); font-variant-numeric:tabular-nums; }
.fp-adjust-row input { appearance:none; position:absolute; inset:0; width:100%; height:100%; min-height:36px; margin:0; cursor:ew-resize; border:0; border-radius:6px; background:linear-gradient(to right,#293a6009 var(--fp-position,50%),transparent var(--fp-position,50%)); }
.fp-adjust-row input::-webkit-slider-runnable-track { height:26px; background:transparent; }
.fp-adjust-row input::-webkit-slider-thumb { appearance:none; width:3px; height:26px; border:0; border-radius:2px; background:#8190a9; }
.fp-adjust-row input::-moz-range-track { height:26px; background:transparent; }
.fp-adjust-row input::-moz-range-thumb { width:3px; height:26px; border:0; border-radius:2px; background:#8190a9; }
.fp-adjust-row:focus-within { outline:3px solid #547bc5; outline-offset:2px; }
.fp .fp-monochrome { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:0 4px; border:0; background:transparent; color:var(--fp-ink); font-size:15px; }
.fp-switch-track { display:block; width:40px; height:24px; padding:3px; border-radius:20px; background:#b8c1cc; flex:none; }
.fp-switch-track>span { display:block; width:18px; height:18px; background:white; border-radius:50%; box-shadow:0 1px 3px #20273530; }
.fp-monochrome[aria-checked=true] .fp-switch-track { background:var(--fp-navy); }
.fp-monochrome[aria-checked=true] .fp-switch-track>span { transform:translateX(16px); }
.fp-field input:disabled { opacity:.35; cursor:default; }
.fp-zoom { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:10px; width:min(260px,calc(100% - 24px)); padding:0 12px; min-height:44px; border-radius:9px; background:rgb(255 255 255 / .94); box-shadow:0 1px 5px #20273514; }
.fp-zoom label,.fp-zoom output { display:flex; align-items:center; align-self:center; margin:0; line-height:20px; font-size:14px; }
.fp-zoom output { min-width:28px; justify-content:flex-end; text-align:right; font-variant-numeric:tabular-nums; }
.fp-zoom input { flex:1; min-width:0; width:100%; min-height:44px; margin:0; accent-color:var(--fp-navy); cursor:pointer; }
.fp-whole-photo .fp-crop-hint { bottom:8px; }
.fp .fp-action { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 16px; border-radius:8px; font-size:16px; font-weight:600; line-height:24px; }
.fp-action svg { width:20px; height:20px; }
.fp #fp-edit { display:none; }
.fp #fp-edit-desktop { min-width:132px; background:#edf1f7; border-color:#cbd6e7; }
.fp .fp-edit-button[aria-expanded=true] { background:#edf1f7; border-color:#cbd6e7; color:var(--fp-navy); }
.fp-opening-row { display:flex; align-items:center; gap:10px; padding:8px 24px; border-bottom:1px solid var(--fp-line); flex:none; }
.fp-opening-row select { flex:1; min-width:0; }
.fp-page-row select { max-width:90px; padding:8px; }
.fp-fit-row:has(.fp-page-row:not([hidden])) { flex-wrap:wrap; }
.fp-page-row { flex-basis:100%; display:flex; justify-content:flex-end; }
.fp-footer { display:flex; align-items:center; gap:12px; padding:14px 24px; border-top:1px solid var(--fp-line); background:white; flex:none; }
.fp-footer #fp-change { min-width:150px; }
.fp-footer .fp-primary { min-width:150px; margin-left:auto; }
.fp .fp-quality { border:0; background:#fff7e8; color:#805414; display:flex; align-items:center; gap:6px; font-size:14px; padding:8px; }
.fp-quality svg { width:18px; height:18px; }
.fp-quality-notice>span { flex:1; min-width:0; }
.fp-quality-notice strong,.fp-quality-notice span span { display:block; }
.fp-quality-notice strong { font-weight:600; font-size:15px; }
.fp-quality-notice span span { font-size:14px; margin-top:2px; line-height:1.35; }
.fp .fp-quality-notice { display:flex; align-items:center; gap:12px; padding:10px 14px; background:#fff7e8; color:#805414; border:1px solid #f0dfbe; border-radius:8px; flex:none; text-align:left; }
.fp .fp-quality-notice:hover { background:#fff0d6; }
.fp-quality-notice>svg { width:22px; height:22px; }
.fp-quality-notice>svg:last-child { width:16px; height:16px; }
.fp-dialog .fp-quality { display:none; }
.fp-dialog[data-view=photos] .fp-quality { display:none; }
.fp-error { color:#9b2929; font-size:14px; }
.fp-dialog>.fp-error { padding:10px 24px; max-height:90px; overflow:auto; background:#fff5f3; }

/* Upload and library live in their own chooser on every screen size. */
.fp-sidebar { display:none; min-width:0; overflow:auto; padding:20px; border-left:1px solid var(--fp-line); background:#fbfcfd; }
.fp-compact-icon { display:none; }
.fp-sources { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:56px; padding:0; }
.fp-drop { display:flex; flex-direction:column; align-items:center; margin:0; padding:0 12px; cursor:pointer; position:relative; text-align:center; color:var(--fp-navy); }
.fp-drop:focus-within .fp-source-cta { outline:3px solid #547bc5; outline-offset:3px; }
.fp-drop input { position:absolute; width:1px; height:1px; opacity:0; }
.fp-pick-art { display:block; margin:0 0 24px; }
.fp-pick-art svg { display:block; width:112px; height:104px; }
.fp-source-hint strong { font-weight:600; color:var(--fp-navy); }
.fp-source-hint { display:block; margin-top:14px; font-size:16px; line-height:1.4; color:var(--fp-muted); }
.fp-source-cta { display:flex; align-items:center; justify-content:center; gap:10px; width:min(260px,100%); min-height:52px; padding:10px 24px; border-radius:7px; background:var(--fp-navy); color:white; font-size:19px; font-weight:600; }
.fp-drop:hover .fp-source-cta-primary { background:#203051; }
.fp .fp-phone-button { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; width:100%; margin:0; padding:0 12px; border:0; border-radius:0; background:transparent; text-align:center; }
.fp .fp-phone-button:hover { background:transparent; }
.fp-source-cta-secondary { background:#edf3ef; color:#355846; }
.fp-phone-button:hover .fp-source-cta-secondary { background:#e2ece5; }
.fp .fp-phone-button:focus-visible { outline:none; }
.fp-phone-button:focus-visible .fp-source-cta { outline:3px solid #547bc5; outline-offset:3px; }
.fp .fp-sources>.fp-file-help { grid-column:1 / -1; margin-top:26px; }
.fp-mobile-copy { display:none; }
.fp-status { font-size:14px; color:var(--fp-muted); overflow-wrap:anywhere; }
.fp-status:not(:empty) { padding:12px 0; }
.fp-library-heading { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:4px 8px; margin:22px 0 12px; }
.fp-library-heading>span { font-size:14px; color:var(--fp-muted); }
.fp-library { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px; }
.fp-tile { min-width:0; }
.fp .fp-tile-photo { position:relative; width:100%; aspect-ratio:1.2; min-height:60px; padding:0; overflow:hidden; border:2px solid transparent; background:#e9ecef; }
.fp-tile-photo img { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.fp .fp-tile-photo[aria-pressed=true] { border-color:#426957; box-shadow:0 0 0 2px white,0 0 0 3px #426957; }
.fp-tile-photo[aria-pressed=true]::after { content:'✓'; position:absolute; right:5px; bottom:5px; color:white; background:#426957; border-radius:50%; width:24px; height:24px; line-height:24px; text-align:center; }
.fp-tile-meta { display:flex; align-items:center; gap:4px; min-width:0; min-height:44px; }
.fp-tile-name { display:block; flex:1; min-width:0; font-size:14px; color:var(--fp-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fp .fp-photo-more { width:44px; height:44px; border-radius:7px; color:#647184; }
.fp .fp-photo-more:hover { background:#edf1f5; color:var(--fp-navy); }
.fp-photo-more svg { width:20px; height:20px; }
.fp-photo-options>p { overflow-wrap:anywhere; color:var(--fp-muted); }
.fp .fp-photo-option { display:flex; align-items:center; gap:12px; width:100%; min-height:52px; border:0; text-align:left; }
.fp-photo-option svg { width:20px; height:20px; }
.fp-dialog[data-view=photos] { height:fit-content; max-height:calc(100dvh - 48px); }
.fp-dialog[data-view=photos] .fp-body { display:block; overflow:auto; }
.fp-dialog[data-view=photos] .fp-workspace,.fp-dialog[data-view=photos] .fp-edit-panel { display:none; }
.fp-dialog[data-view=photos] .fp-sidebar { display:block; border:0; background:white; max-width:800px; margin:0 auto; padding:40px 28px 32px; }
.fp-dialog[data-view=photos] .fp-library-heading { margin-top:36px; margin-bottom:16px; }
.fp-dialog[data-view=photos] .fp-library { grid-template-columns:repeat(4,minmax(0,1fr)); }
.fp-dialog[data-view=photos]:not(.fp-has-library) { min-height:min(580px,calc(100dvh - 48px)); }
.fp-dialog[data-view=photos]:not(.fp-has-library) .fp-body { display:flex; }
.fp-dialog[data-view=photos]:not(.fp-has-library) .fp-sidebar { display:flex; flex-direction:column; justify-content:center; width:100%; }
.fp-dialog.fp-has-library[data-view=photos] .fp-sidebar { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; max-width:none; padding:28px 32px; }
.fp-has-library .fp-sources { display:flex; flex-direction:column; gap:28px; align-self:start; padding-right:28px; border-right:1px solid var(--fp-line); }
.fp-has-library .fp-drop,.fp.fp-has-library .fp-phone-button { padding:0; }
.fp-has-library .fp-pick-art { margin-bottom:12px; }
.fp-has-library .fp-pick-art svg { width:78px; height:72px; }
.fp-has-library .fp-source-cta { width:100%; min-height:48px; padding:10px 14px; font-size:17px; }
.fp-has-library .fp-source-hint { margin-top:10px; font-size:15px; }
.fp-has-library .fp-file-help,.fp-has-library .fp-library-heading h3 { display:none; }
.fp-gallery { min-width:0; }
.fp-dialog.fp-has-library[data-view=photos] .fp-library-heading { margin:0 0 16px; }
.fp-has-library .fp-library-heading>span { font-size:16px; }
.fp-dialog.fp-has-library[data-view=photos] .fp-library { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 16px; }
.fp-compact-icon svg { width:20px; height:20px; }
/* File drags cover the entire chooser, without adding a permanent box to the layout. */
.fp-drop-overlay { position:absolute; z-index:10; inset:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:24px; border:2px dashed #78978a; border-radius:12px; background:rgb(247 251 248 / .97); color:#426957; text-align:center; pointer-events:none; visibility:hidden; opacity:0; }
.fp-drop-overlay strong { font-size:30px; font-weight:600; line-height:1.2; }
.fp-drop-overlay>span:last-child { color:var(--fp-muted); font-size:17px; }
.fp-drop-illustration { display:grid; place-items:center; width:96px; height:96px; margin-bottom:12px; border-radius:24px; background:#e9f1ec; }
.fp-drop-illustration svg { width:52px; height:52px; stroke-width:1.2; }
.fp-drag-over .fp-drop-overlay { visibility:visible; opacity:1; }
@media(min-width:768px) and (max-width:900px) {
 .fp-dialog.fp-has-library[data-view=photos] .fp-sidebar { grid-template-columns:210px minmax(0,1fr); gap:24px; padding:24px; }
 .fp-has-library .fp-sources { padding-right:24px; }
 .fp-dialog.fp-has-library[data-view=photos] .fp-library { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.fp-popover { max-width:none; border:0; border-radius:16px; padding:0; width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; box-shadow:0 24px 70px #20273540; }
.fp-popover .fp-header { padding:16px 20px; }
.fp-popover h2 { font-size:23px; }
.fp-popup-body { padding:20px; }
.fp-popup-body p { margin-bottom:16px; }
.fp-popup-body .fp-primary { width:100%; margin-top:16px; }
.fp-popup-body label { display:block; margin-bottom:8px; }
.fp-popup-body input[type=text] { width:100%; min-height:46px; padding:10px; border:1px solid #aab5c3; border-radius:6px; }
.fp-qr { text-align:center; }
.fp-qr img { display:block; width:240px; height:240px; max-width:100%; margin:0; }
.fp-qr-link { display:block; width:240px; max-width:100%; margin:0 auto 18px; }
.fp-qr a { color:var(--fp-navy); text-decoration:underline; }
.fp-phone-steps { list-style:none; counter-reset:phone-step; display:grid; gap:12px; margin:0; padding:0; text-align:left; }
.fp-phone-steps li { counter-increment:phone-step; display:flex; align-items:flex-start; gap:10px; font-size:16px; line-height:1.4; }
.fp-phone-steps li::before { content:counter(phone-step); display:grid; place-items:center; flex:none; width:24px; height:24px; background:#eef2f8; border-radius:50%; color:var(--fp-navy); font-size:14px; font-weight:600; }
.fp-qr .fp-upload-progress[data-quiet=true] { margin-top:18px; padding-top:14px; border-top:1px solid var(--fp-line); }
.fp-qr .fp-upload-progress[data-quiet=true] .fp-upload-title { color:#426957; font-size:15px; font-weight:400; }
.fp-qr .fp-upload-progress[data-quiet=true] .fp-upload-hint { display:none; }
.fp-phone { display:flow-root; background:#f7f8fa; margin:0; min-height:100dvh; }
.fp-phone main { box-sizing:border-box; width:min(440px,calc(100% - 48px)); margin:48px auto; padding:32px; background:white; border:1px solid var(--fp-line); border-radius:18px; }
.fp-phone-brand { margin-bottom:28px; }
.fp-phone-brand img { display:block; width:144px; height:23px; }
.fp-phone h1 { font-size:32px; font-weight:600; line-height:1.15; letter-spacing:-.7px; margin:0 0 10px; }
.fp-phone-intro>p { font-size:18px; line-height:1.4; color:var(--fp-muted); }
.fp-phone-actions { margin-top:24px; }
.fp-phone .fp-primary { width:100%; min-height:56px; font-size:18px; }
.fp-phone-picker-hint { margin-top:8px!important; text-align:center; color:var(--fp-muted); font-size:15px; }
.fp-phone-status:not([hidden]) { display:flex; gap:10px; margin-top:20px; padding:12px; background:#f3f5f8; border-radius:8px; }
.fp-phone-status strong { display:block; font-weight:600; }
.fp-phone-status p { margin-top:4px; color:var(--fp-muted); font-size:15px; overflow-wrap:anywhere; }
#fp-phone-status-icon:empty { display:none; }
.fp-phone-result-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:18px; border-radius:50%; background:#eaf2ed; color:#426957; }
.fp-phone-result-icon svg { width:28px; height:28px; }
.fp-phone [data-state=error] .fp-phone-status,.fp-phone :is([data-state=expired],[data-state=connection-error]) .fp-phone-result-icon { background:#fff7e8; color:#805414; }
.fp-phone progress { display:block; width:100%; height:8px; margin:14px 0; accent-color:#426957; }
.fp-phone #fp-phone-retry { margin-top:24px; }
.fp-phone-tips { margin-top:28px; padding-top:22px; border-top:1px solid var(--fp-line); }
.fp-phone .fp-phone-tips h2 { font-size:19px; letter-spacing:0; margin-bottom:16px; }
.fp-phone-tips ul { list-style:none; padding:0; margin:0; display:grid; gap:16px; }
.fp-phone-tips li { display:flex; align-items:flex-start; gap:12px; font-size:16px; line-height:1.4; }
.fp-phone-tips strong { font-weight:600; }
.fp-tip-icon { display:grid; place-items:center; width:26px; height:26px; flex:none; background:#eaf2ed; color:#426957; border-radius:50%; }
.fp-tip-icon svg { width:18px; height:18px; }
.fp-tip-avoid { background:#f5eeee; color:#94605b; }
.fp-tip-hd { border-radius:5px; background:#edf1f7; color:var(--fp-navy); font-size:11px; font-weight:700; }
@media(max-width:480px) {
 .fp-phone { background:white; }
 .fp-phone main { width:100%; margin:0; padding:24px 20px max(20px,env(safe-area-inset-bottom)); border:0; border-radius:0; }
 .fp-phone-brand { margin-bottom:24px; }
 .fp-phone h1 { font-size:30px; }
 .fp-phone-intro>p { font-size:17px; }
 .fp-phone-actions { margin-top:22px; }
 .fp-phone-tips { margin-top:24px; padding-top:20px; }
 .fp-phone-tips ul { gap:14px; }
}

@media(max-width:767px) {
 .fp-dialog { width:100%; height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); margin:auto 0 0; border-radius:24px 24px 0 0; }
 .fp-dialog[data-view=photos] { max-height:calc(100dvh - 16px); }
 /* Give the saved-photo sheet a definite height: iOS Safari can collapse the
    fit-content dialog around its flexible, scrolling gallery when reopening. */
 .fp-dialog.fp-has-library[data-view=photos] { height:calc(100dvh - 16px); }
 .fp-dialog[data-view=photos]:not(.fp-has-library) { min-height:min(520px,calc(100dvh - 16px)); }
 .fp-header { padding:10px 16px; min-height:64px; }
 .fp h2 { font-size:23px; }
 .fp-body { display:flex; flex-direction:column; }
 .fp-workspace { padding:8px 14px 10px; flex:1; gap:6px; }
 .fp-preview { min-height:120px; }
 .fp-sidebar { display:none; }
 .fp-dialog[data-view=photos] .fp-sidebar { display:block; padding:20px 18px; }
 .fp .fp-desktop-copy { display:none; }
 .fp .fp-phone-button { display:none!important; }
 .fp-sources { display:block; padding:0; }
 .fp-drop { padding:0; }
 .fp-pick-art { margin-bottom:14px; }
 .fp-pick-art svg { width:65px; height:52px; }
 .fp-source-hint { margin-top:10px; }
 .fp .fp-sources>.fp-file-help { margin-top:13px; }
 .fp-mobile-copy { display:block; }
 .fp-dialog[data-view=photos] .fp-library { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .fp-dialog[data-view=photos] .fp-library-heading { margin-top:20px; margin-bottom:12px; }
 .fp-dialog.fp-has-library[data-view=photos] .fp-sidebar { display:block; padding:16px 18px 20px; }
 .fp-has-library .fp-sources { display:block; border:0; padding:0; }
 .fp-has-library .fp-drop { flex-direction:row; gap:14px; text-align:left; }
 .fp-has-library .fp-pick-art { display:none; }
 .fp-has-library .fp-compact-icon { display:inline-flex; }
 .fp-has-library .fp-source-cta { width:auto; flex:none; font-size:16px; }
 .fp-has-library .fp-source-hint { margin:0; font-size:14px; }
 .fp-dialog.fp-has-library[data-view=photos] .fp-library-heading { margin:22px 0 12px; }
 .fp-dialog.fp-has-library[data-view=photos] .fp-library { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .fp-drop-overlay { inset:8px; }
 .fp-drop-overlay strong { font-size:25px; }
 .fp-library { gap:14px 10px; }
 .fp-fit-row { gap:4px; }
 .fp .fp-segment button { padding:5px 6px; font-size:15px; }
 .fp-edit-panel { position:absolute; z-index:2; bottom:10px; left:14px; right:14px; width:auto; padding:10px 8px 8px; border:1px solid #dce2e9; border-radius:14px; background:rgb(255 255 255 / .96); backdrop-filter:blur(16px); box-shadow:0 -4px 22px #20273516; transform:translateY(16px); overflow:visible; }
 .fp-edit-heading { margin:0; }
 .fp-edit-heading h3 { display:none; }
 .fp-edit-heading button { position:absolute; top:10px; right:8px; }
 .fp-tools { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0 2px; }
 .fp-tool { display:contents; }
 .fp .fp-tools [data-tool],.fp .fp-tools [data-tool][data-tool=auto] { grid-row:2; flex-direction:column; gap:5px; padding:7px 0; min-height:61px; justify-content:center; border:1px solid transparent; border-radius:9px; font-size:13px; text-align:center; background:transparent; }
 .fp-tools .fp-active-tool [data-tool] { color:var(--fp-navy); background:#edf1f7; border-color:#dce3ef; }
 .fp-tools i { position:absolute; top:4px; right:calc(50% - 17px); }
 .fp-auto-state { display:none; }
 .fp-tool-chevron { display:none; }
 .fp-field { display:none; }
 .fp-active-tool .fp-field,.fp-tool.fp-active-tool[data-control=auto] .fp-field { display:block; position:relative; grid-column:1 / -1; grid-row:1; padding:0 48px 0 0; min-height:56px; margin:0 4px 6px; }
 .fp-adjust-row { display:none; height:56px; background:transparent; overflow:visible; }
 .fp-adjust-row.fp-current-adjust { display:block; }
 .fp-adjust-row label,.fp-adjust-row output { top:0; transform:none; font-size:15px; }
 .fp-adjust-row label { left:0; }
 .fp-adjust-row output { right:0; }
 .fp-field:has(.fp-adjust-picker) .fp-adjust-row label { visibility:hidden; }
 .fp .fp-adjust-picker { display:block; position:absolute; left:0; top:-4px; z-index:2; width:calc(100% - 88px); min-height:28px; height:28px; padding:0 14px 0 0; border:0; border-radius:0; background:transparent; font-size:15px; color:var(--fp-ink); }
 .fp-adjust-row input { appearance:auto; inset:auto 0 0; height:36px; background:transparent; accent-color:var(--fp-navy); cursor:pointer; }
 .fp-adjust-row input::-webkit-slider-runnable-track { height:revert; background:revert; }
 .fp-adjust-row input::-webkit-slider-thumb { appearance:auto; width:revert; height:revert; border:revert; border-radius:revert; background:revert; }
 .fp-adjust-row input::-moz-range-track { height:revert; background:revert; }
 .fp-adjust-row input::-moz-range-thumb { width:revert; height:revert; border:revert; border-radius:revert; background:revert; }
 .fp-adjust-row:focus-within { outline:none; }
 .fp .fp-monochrome { margin-top:2px; padding:0; }
 .fp-field p { padding-top:6px; font-size:14px; line-height:1.4; color:var(--fp-muted); }
 .fp-editing .fp-zoom,.fp-editing .fp-crop-hint { visibility:hidden; }
 .fp-editing .fp-fit-row { display:none; }
 .fp #fp-edit-desktop { display:none; }
 .fp #fp-edit { display:inline-flex; }
 .fp .fp-quality-notice { display:none; }
 .fp-dialog .fp-quality { display:flex; }
 .fp-dialog[data-view=photos] .fp-quality { display:none; }
 .fp-footer { padding:10px 14px max(10px,env(safe-area-inset-bottom)); gap:8px; flex-wrap:wrap; }
 .fp-footer .fp-action { padding:8px; min-height:44px; font-size:14px; gap:5px; }
 .fp-footer #fp-change { min-width:0; }
 .fp-footer #fp-edit { min-width:64px; }
 .fp-footer .fp-primary { min-width:74px; flex:1; max-width:160px; }
 .fp-footer svg { width:18px; height:18px; }
 .fp-opening-row { padding:6px 14px; gap:6px; }
 .fp-opening-row label { font-size:14px; }
 .fp-opening-row button { padding:6px; font-size:14px; }
 .fp-popover { width:100%; margin:auto 0 0; max-height:calc(100dvh - 16px); border-radius:24px 24px 0 0; }
 .fp .fp-entry-button { padding:14px 12px; gap:10px; }
 .fp-entry-art { width:38px; height:48px; }
 .fp-entry-art svg { width:40px; height:48px; }
 .fp-entry-action { width:28px; height:28px; }
 .fp-entry-copy strong { font-size:17px; }
}
/* Enlarged text and landscape retain access to every control via internal scrolling. */
.fp-dialog[data-view=frame] .fp-workspace,.fp-dialog[data-view=frame] .fp-sidebar,.fp-dialog[data-view=frame] .fp-edit-panel { display:none; }
.fp-dialog[data-view=frame] .fp-body { display:flex; }
.fp-frame-workspace { flex:1; min-width:0; min-height:0; width:100%; display:flex; flex-direction:column; gap:12px; padding:16px 24px; }
.fp-frame-toolbar { display:flex; align-items:center; gap:14px; font-size:15px; color:var(--fp-muted); flex:none; }
.fp-frame-toolbar select { min-width:116px; }
.fp-frame-stage { flex:1; min-height:100px; display:flex; align-items:center; justify-content:center; position:relative; background:#f4f5f6; border-radius:10px; overflow:hidden; }
.fp-frame-picture { position:relative; flex:none; }
.fp-frame-picture canvas { display:block; width:100%; height:100%; }
.fp-frame-target { position:absolute; transform:translate(-50%,-50%); border:2px solid white!important; border-radius:50%!important; width:44px; height:44px; min-height:44px; padding:0!important; display:flex; align-items:center; justify-content:center; line-height:1; background:rgb(41 58 96 / .9)!important; color:white!important; box-shadow:0 2px 8px #20273533; font-size:19px!important; }
.fp-frame-target>svg { display:block; width:22px; height:22px; pointer-events:none; }
.fp-frame-target:hover { background:#293a60!important; }
.fp-frame-stage>p { padding:20px; color:var(--fp-muted); }
.fp-frame-openings { display:flex; gap:8px; overflow:auto; flex:none; padding:3px; }
.fp-frame-openings button { white-space:nowrap; font-size:14px; }
.fp-frame-caption { font-size:13px; color:var(--fp-muted); }
.fp .fp-frame-button { font-size:14px; padding:8px 12px; gap:6px; }
.fp-frame-button svg { width:20px; height:20px; }
@media(max-width:767px) {
 .fp-frame-workspace { padding:8px 14px 10px; gap:8px; }
 .fp-dialog:has(.fp-frame-button:not([hidden])) .fp-quality span { display:none; }
 .fp-frame-toolbar { font-size:13px; gap:8px; }
 .fp-frame-toolbar select { font-size:14px; padding:6px 8px; min-width:100px; }
 .fp .fp-frame-button { padding:6px 8px; font-size:0; gap:4px; }
 .fp-frame-button span { display:none; }
 .fp-frame-button::after { content:attr(data-short-label); font-size:14px; }
 .fp-frame-button svg { width:18px; height:18px; }
 .fp-frame-caption { font-size:12px; }
 .fp-frame-openings button { min-height:44px; padding:6px 10px; }
 .fp-dialog[data-view=frame] .fp-footer { justify-content:flex-end; }
}
@media(max-height:480px) {
 .fp-workspace { overflow:auto; }
 .fp-edit-panel { max-height:100%; overflow:auto; }
 .fp-preview { flex:none; height:170px; }
}
@media(prefers-reduced-motion:no-preference) {
 .fp-pick-art { transition:transform .4s cubic-bezier(.2,.8,.2,1),filter .4s; }
 .fp-source-cta { transition:background .2s,box-shadow .3s,transform .3s; }
 .fp-drop:focus-within .fp-pick-art,.fp-phone-button:focus-visible .fp-pick-art { transform:translateY(-4px); }
 .fp-drop-overlay { transition:opacity .18s,visibility .18s; }
 .fp-drop-illustration { transition:transform .25s cubic-bezier(.2,.8,.2,1); transform:translateY(6px) scale(.94); }
 .fp-drag-over .fp-drop-illustration { transform:none; }
 .fp-body { transition:grid-template-columns .24s ease; }
 .fp-edit-panel { transition:opacity .2s ease,transform .24s ease,visibility .24s; }
 .fp-dialog[open],.fp-popover[open] { animation:fp-enter .22s cubic-bezier(.16,1,.3,1); }
 @keyframes fp-enter { from { opacity:0; transform:translateY(12px); } }
}
#ready-made-product .rmp-preview-toggle {display:block;margin:8px 0 0 auto;min-height:44px;padding:8px 2px;border:0;background:transparent;color:#52624e;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#ready-made-product .rmp-preview-toggle[hidden] {display:none}

.fp .fp-basket-quality details{margin:14px 0;font-size:14px;line-height:1.5}
.fp .fp-basket-quality summary{cursor:pointer;color:#445c71}
.fp .fp-basket-quality label{display:flex;align-items:flex-start;gap:12px;padding:14px 0;font-size:15px;line-height:1.5;cursor:pointer}
.fp .fp-basket-quality input[type=checkbox]{width:21px;height:21px;flex:none;margin:1px 0 0;accent-color:#21364b}
.fp .fp-basket-quality-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:12px}

/* A focused, photo-led interlude; choices and QR step aside during transfer. */
.fp .fp-file-help{margin:13px 0 0;text-align:center;color:var(--fp-muted);font-size:14px;line-height:1.4}
.fp-transfer-workspace{display:none;min-width:0;min-height:0;overflow:auto;padding:28px 24px}
.fp-dialog[data-view=upload]{height:min(650px,calc(100dvh - 48px))}
.fp-dialog[data-view=upload] .fp-body{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 28%,#f5f8f7,white 65%)}
.fp-dialog[data-view=upload] .fp-body>:not(.fp-transfer-workspace){display:none!important}
.fp-dialog[data-view=upload] .fp-transfer-workspace{display:block;width:100%;max-height:100%}
.fp-dialog[data-view=upload] :is(.fp-quality,.fp-opening-row){display:none!important}
.fp-upload-progress{width:100%;max-width:430px;margin:0 auto;text-align:center}
.fp-upload-art{width:240px;height:248px;position:relative;margin:0 auto 22px;display:grid;place-items:center}
.fp-upload-halo{position:absolute;inset:3% -8%;border-radius:50%;background:radial-gradient(ellipse,#dce9e4 0%,#edf2f4 40%,transparent 70%);animation:fp-halo-breathe 6s ease-in-out infinite}
.fp-upload-frame{--fp-frame-short:166px;--fp-frame-long:205px;width:var(--fp-frame-short);height:var(--fp-frame-long);transition:width .35s ease,height .35s ease;padding:12px;background:#fffdfa;border:7px solid #293a60;box-shadow:8px 18px 30px #293a601c,1px 2px 3px #293a601a;transform:rotate(-4deg);animation:fp-frame-float 6s ease-in-out infinite;position:relative;border-radius:2px}
.fp-upload-progress[data-orientation=landscape] .fp-upload-frame{width:var(--fp-frame-long);height:var(--fp-frame-short)}
.fp-upload-progress[data-orientation=square] .fp-upload-frame{height:var(--fp-frame-short)}
.fp-upload-picture{height:100%;position:relative;overflow:hidden;background:#e0eae7}
.fp-upload-picture>svg,.fp-upload-picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fp-upload-light{position:absolute;inset:-100% -50%;background:linear-gradient(120deg,transparent 40%,#ffffff70 48%,transparent 56%);transform:translateX(-60%);animation:fp-photo-shine 5s ease-in-out infinite;pointer-events:none}
.fp-upload-spark{position:absolute;color:#8ba99a;font-size:22px;font-style:normal;animation:fp-spark-glow 4s ease-in-out infinite}
.fp-spark-one{left:18px;top:39px}.fp-spark-two{right:15px;bottom:32px;font-size:14px;animation-delay:-2s}
.fp-upload-complete{position:absolute;bottom:18px;right:27px;background:#426957;color:white;width:42px;height:42px;border:4px solid white;border-radius:50%;display:grid;place-items:center;opacity:0;transform:scale(.6);transition:opacity .3s,transform .45s cubic-bezier(.2,.8,.2,1.3)}
.fp-upload-complete svg{width:24px;height:24px}
.fp-upload-progress[data-phase=loading] .fp-upload-complete{opacity:1;transform:scale(1)}
.fp-upload-progress[data-phase=loading] .fp-upload-frame{animation:none;transform:rotate(0);transition:transform .4s,width .35s ease,height .35s ease}
.fp-upload-title{display:block;font-size:26px;font-weight:600;line-height:1.2;letter-spacing:-.4px}
.fp .fp-upload-hint{font-size:16px;line-height:1.45;color:var(--fp-muted);margin:12px auto 0;min-height:47px;max-width:355px;text-wrap:pretty}
.fp-upload-meter{margin:22px auto 0;max-width:330px}
.fp-upload-readout{display:flex;align-items:baseline;justify-content:space-between;gap:14px;min-height:24px;margin-bottom:8px}
.fp-upload-stage-label{font-size:14px;color:var(--fp-muted)}
.fp-upload-percent{font-size:20px;line-height:1;font-weight:600;font-variant-numeric:tabular-nums;color:var(--fp-navy)}
.fp .fp-upload-progress progress{display:block;appearance:none;width:100%;height:5px;margin:0;background:#e3e9e7;border:0;border-radius:5px;overflow:hidden;accent-color:#426957}
.fp-upload-progress progress::-webkit-progress-bar{background:#e3e9e7;border-radius:5px}
.fp-upload-progress progress::-webkit-progress-value{background:#426957;border-radius:5px;transition:width .35s ease-out}
.fp-upload-progress progress::-moz-progress-bar{background:#426957}
.fp-upload-progress progress:indeterminate{background:linear-gradient(90deg,#e3e9e7 20%,#809e90 50%,#e3e9e7 80%);background-size:200% 100%;animation:fp-progress-flow 2.5s linear infinite}
.fp-upload-progress progress:indeterminate::-webkit-progress-bar{background:transparent}
.fp-upload-steps{display:flex;justify-content:center;gap:28px;list-style:none;padding:0;margin:20px 0 0;color:#7b8694;font-size:13px}
.fp-upload-steps li{display:flex;align-items:center;gap:6px}
.fp-upload-steps li::before{content:'';width:5px;height:5px;background:#cbd3d9;border-radius:50%}
.fp-upload-steps [data-state=current]{color:var(--fp-ink);font-weight:600}
.fp-upload-steps [data-state=current]::before{background:#426957;box-shadow:0 0 0 3px #42695718}
.fp-upload-steps [data-state=done]{color:#426957}
.fp-upload-steps [data-state=done]::before{content:'✓';width:auto;height:auto;background:none}
.fp .fp-upload-filename{margin:14px auto 0;font-size:12px;color:#737e8c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}
.fp-upload-progress[data-quiet=true] .fp-upload-art{display:none}
.fp-upload-progress[data-quiet=true] .fp-upload-title{font-size:18px;letter-spacing:0}
.fp-upload-progress[data-quiet=true] .fp-upload-hint{font-size:15px;min-height:0;margin-top:7px}
.fp-upload-progress[data-phase=error] .fp-upload-art{height:180px;transform:scale(.8);margin-bottom:0}
.fp-upload-progress[data-phase=error] :is(.fp-upload-frame,.fp-upload-halo,.fp-upload-light,.fp-upload-spark){animation:none}
.fp .fp-upload-return{display:flex;margin:20px auto 0}
.fp-library-note{grid-column:1/-1;font-size:14px;color:var(--fp-muted);padding:10px 0}
.fp-tile-pending{position:absolute;bottom:4px;left:4px;right:4px;background:#fffef7e8;border-radius:4px;padding:3px;font-size:12px;color:#426957}
.fp-phone [data-state=sending] :is(.fp-phone-actions,.fp-phone-intro){display:none}
.fp-phone [data-state=sending] .fp-upload-progress{margin-top:8px}
.fp-phone [data-state=sending] .fp-upload-art{height:205px;margin-bottom:16px}
.fp-phone .fp-file-help{font-size:13px;margin-top:10px}
@keyframes fp-upload-spin{to{transform:rotate(360deg)}}
@keyframes fp-halo-breathe{50%{transform:scale(1.08);opacity:.65}}
@keyframes fp-frame-float{50%{transform:translateY(-7px) rotate(3deg)}}
@keyframes fp-photo-shine{0%,25%{transform:translateX(-60%)}75%,100%{transform:translateX(60%)}}
@keyframes fp-spark-glow{50%{opacity:.25;transform:scale(.7)}}
@keyframes fp-progress-flow{to{background-position:-200% 0}}
@media(max-width:767px){
 .fp-dialog[data-view=upload]{height:calc(100dvh - 16px);max-height:none}
 .fp-transfer-workspace{padding:12px 20px 20px}
 .fp-upload-art{height:215px;width:215px;margin-bottom:18px}
 .fp-upload-frame{--fp-frame-short:142px;--fp-frame-long:178px;padding:10px;border-width:6px}
 .fp-upload-title{font-size:23px}.fp .fp-upload-hint{font-size:15px;min-height:44px}
 .fp-upload-meter{margin-top:18px}.fp-upload-steps{margin-top:16px}
 .fp .fp-file-help{font-size:13px}.fp-upload-filename{max-width:250px}
}
@media(max-height:650px){.fp-upload-art{height:175px;margin-bottom:12px}.fp-upload-frame{--fp-frame-short:126px;--fp-frame-long:158px;padding:9px;border-width:6px}.fp-upload-halo{inset:0 3%}.fp-upload-meter{margin-top:14px}.fp-upload-steps{margin-top:14px}}
@media(prefers-reduced-motion:reduce){
 .fp-upload-progress *{animation:none!important;transition:none!important}
}

@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .fp-drop:hover .fp-pick-art { transform:translateY(-5px) rotate(-3deg); filter:drop-shadow(0 5px 4px #293a6012); }
 .fp-phone-button:hover .fp-pick-art { transform:translateY(-5px) rotate(3deg); filter:drop-shadow(0 5px 4px #42695712); }
 .fp-phone-button:hover .fp-scan-line { animation:fp-scan .9s ease-in-out; }
 .fp-drop:hover .fp-source-cta,.fp-phone-button:hover .fp-source-cta { transform:translateY(-1px); box-shadow:0 4px 12px #293a6010; }
 @keyframes fp-scan { 0%,100% { transform:translateY(0); } 30% { transform:translateY(-8px); } 70% { transform:translateY(8px); } }
}
