/* Quiet feedback, never a full-page loading screen. */
@keyframes duo-shimmer{to{background-position:-200% 0}}
@keyframes duo-progress{0%{transform:translateX(-110%)}100%{transform:translateX(350%)}}
html.duo-requesting:before{content:'';position:fixed;top:0;left:0;width:30%;height:2px;z-index:1000;pointer-events:none;background:#d5d4ce;animation:duo-progress 1.4s ease-in-out infinite}
.duo-skeleton{display:grid;gap:16px;margin:20px 0;pointer-events:none}
.duo-skeleton span,.duo-status-loading:after,img.duo-image-pending{background:linear-gradient(100deg,#ffffff05 20%,#ffffff0d 45%,#ffffff05 70%);background-size:200% 100%;animation:duo-shimmer 1.8s linear infinite}
.duo-skeleton-photos{grid-template-columns:repeat(4,minmax(0,1fr))}.duo-skeleton-photos span{aspect-ratio:4/5;min-width:0}.duo-skeleton-photos span:nth-child(even){aspect-ratio:9/16}
.duo-skeleton-rows span{height:46px}.duo-skeleton-rows span:nth-child(2){width:80%}.duo-skeleton-rows span:last-child{width:60%}
.duo-status-loading:after{content:'';display:block;height:10px;width:min(280px,80%);margin-top:12px}
img.duo-image-pending{color:transparent;min-height:24px}
.tile-image img.duo-image-pending,.global-photo img.duo-image-pending,.suspended-print img.duo-image-pending,.rat-source-card img.duo-image-pending{aspect-ratio:9/16;object-fit:contain;width:100%}
img.duo-image-error{background:#181916;color:#b5b5ae;font:11px monospace;min-height:60px;object-fit:contain}
.rack-references{margin:24px 0;padding:18px 0;border-top:1px solid #ffffff20}
.reference-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;font:10px/1.5 monospace;color:#aaa;letter-spacing:.6px}
.reference-heading button{font:9px monospace;color:#ddd;padding:6px 0!important;border:0!important}
.rack-references ul{list-style:none;padding:0;margin:13px 0 0;display:flex;gap:8px 20px;flex-wrap:wrap;max-height:135px;overflow:auto;scrollbar-width:thin}
.rack-references li button{font:11px/1.6 monospace;padding:6px 0!important;border:0!important;border-bottom:1px solid #ffffff25!important;background:none;border-radius:0!important;color:#e5e4dc;overflow-wrap:anywhere;text-align:left}
.rack-references li button:hover{border-color:#fff!important}.rack-references p{font:12px/1.6 Arial,sans-serif;color:#999}
.seller-rack-explainer{max-width:650px;color:#a7a7a1;font:14px/1.8 Arial,sans-serif;margin:0 0 30px}
.app-install-access{padding:24px 5%;border-top:1px solid #ffffff15;text-align:right;background:#090909;font:9px/1.6 monospace;letter-spacing:.6px;color:#aaa}
.install-page{max-width:1120px;padding:70px 6% 90px;margin:0 auto}.install-page h1{font:400 clamp(46px,7vw,88px)/1.02 Arial,Helvetica,sans-serif;letter-spacing:-3px;margin:35px 0}.install-page h1 em{font-family:Georgia,serif;font-weight:400}.install-page>p{max-width:510px;font:14px/1.9 Arial,sans-serif;color:#a7a7a1}
.app-icon-preview{width:78px;height:78px;display:block;margin:0 0 35px;border:1px solid #ffffff25;border-radius:16px}
.install-page button,.install-teaser a,.install-teaser button{display:inline-block;padding:16px 0;border:0;border-bottom:1px solid #aaa;border-radius:0;font:11px/1.6 monospace;letter-spacing:.5px;background:none;color:inherit}
.install-page #install-status{font:11px/1.8 monospace;margin:20px 0 50px;color:#a7a7a1}
.install-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;border-top:1px solid #ffffff25;padding-top:25px;scroll-margin-top:30px}
.install-guide h2{font:11px monospace;letter-spacing:1px}.install-guide p{font:13px/1.9 Arial,sans-serif;color:#a7a7a1}.install-guide ol{padding-left:17px;font:13px/1.9 Arial,sans-serif;color:#ccc}
.install-teaser{padding:65px 6%;border-top:1px solid #ffffff20;background:#0b0b0b}.install-teaser h2{font:400 clamp(30px,4vw,48px)/1.1 Arial,sans-serif;letter-spacing:-1.5px;margin:22px 0}.install-teaser p{font:14px/1.8 Arial,sans-serif;color:#a7a7a1;max-width:480px}
.duo-standalone .app-install-access{display:none}
@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.site-header{padding-left:max(5%,env(safe-area-inset-left))!important;padding-right:max(5%,env(safe-area-inset-right))!important}}
@media(max-width:750px){.duo-skeleton-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.duo-skeleton-photos span:nth-child(n+3){display:none}.install-guide{grid-template-columns:1fr;gap:22px}.install-page{padding-top:42px}.reference-heading{font-size:9px}.rack-references ul{gap:6px 16px}.app-install-access{text-align:left}}
@media(prefers-reduced-motion:reduce){.duo-skeleton span,.duo-status-loading:after,img.duo-image-pending,html.duo-requesting:before{animation:none}}
/* The install action stays on this page; native confirmation when available. */
.app-install-access button{padding:8px 0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;min-height:44px}
.panel-shortcuts [data-install-app]{font:10px monospace;border:0;border-bottom:1px solid #777;border-radius:0;padding:0 0 12px;background:none;color:inherit}
[data-install-app]:disabled{cursor:default;opacity:.6}
html.duo-install-open{overflow:hidden}
dialog.duo-install-dialog{box-sizing:border-box;width:min(440px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:40px 30px 30px;background:#151716f5;backdrop-filter:blur(24px);color:#f4f2ed;border:1px solid #ffffff26;border-radius:4px;overflow-y:auto;text-align:left;box-shadow:0 24px 90px #0007}
dialog.duo-install-dialog::backdrop{background:#0009;backdrop-filter:blur(12px)}
.duo-install-dialog .duo-install-close{position:absolute;top:8px;right:8px;width:44px;height:44px;padding:0;border:0;border-radius:0;background:transparent;color:inherit;display:grid;place-items:center}
.duo-install-close:before,.duo-install-close:after{content:'';position:absolute;width:16px;height:1px;background:currentColor;transform:rotate(45deg)}
.duo-install-close:after{transform:rotate(-45deg)}
.duo-install-dialog .duo-install-eyebrow{display:block;padding-right:24px;font:9px/1.6 monospace;letter-spacing:1px;color:#a2a49e}
.duo-install-dialog h2{font:400 34px/1.08 Arial,Helvetica,sans-serif;letter-spacing:-1px;margin:24px 0 14px}
.duo-install-dialog p{font:13px/1.7 Arial,Helvetica,sans-serif;color:#aeb0a9;margin:8px 0 0}
.duo-install-dialog ol{list-style:none;counter-reset:install-step;padding:0;margin:26px 0;display:grid;gap:20px}
.duo-install-dialog li{counter-increment:install-step;position:relative;padding-left:33px}
.duo-install-dialog li:before{content:'0' counter(install-step);position:absolute;left:0;top:2px;font:10px/1.5 monospace;color:#888d84}
.duo-install-dialog li strong{font:400 14px/1.4 Arial,Helvetica,sans-serif}
.duo-install-dialog li p{margin-top:5px;font-size:12px}
.duo-install-dialog .duo-install-note{border-top:1px solid #ffffff20;padding-top:18px;font-size:12px}
.duo-install-dialog>a{display:inline-block;font:9px/1.6 monospace;letter-spacing:.5px;margin-top:18px;padding:10px 0;border-bottom:1px solid #ffffff35}
@media(max-width:450px){dialog.duo-install-dialog{padding:38px 24px 26px}.duo-install-dialog h2{font-size:30px}}
/* Compact rack selection, shared by catalog, future and discovery. */
.gallery-dialog.rack-picker-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:26px;border-radius:4px;overflow:auto}
.rack-picker-dialog .dialog-head{margin-bottom:24px}.rack-picker-dialog .dialog-head h2{font:400 25px/1.2 Arial,sans-serif;letter-spacing:-.6px;margin:0}
.rack-picker-dialog .dialog-close{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;padding:0;line-height:1}
.rack-picker-reference{font:10px monospace!important;color:#d9dccf!important;overflow-wrap:anywhere}.rack-picker-list{display:grid;gap:9px;max-height:28dvh;overflow:auto;margin:16px 0 24px;scrollbar-width:thin}
.rack-picker-list button{text-align:left;background:#ffffff04;border-radius:0;font:12px/1.5 Arial,sans-serif;overflow-wrap:anywhere}.rack-picker-list .rack-has-photo{border-color:#b5bdab!important;background:#ffffff0b}.rack-picker-list .rack-has-photo:after{content:'GUARDADO';display:block;font:8px monospace;color:#aebc9b;margin-top:8px}
.rack-picker-dialog .rat-new-form{display:grid;gap:12px;border-top:1px solid #ffffff25;padding-top:20px}.rat-new-form label{font:9px/1.6 monospace;letter-spacing:.5px}.rack-picker-dialog .rat-new-form input{display:block;width:100%;margin-top:9px;min-width:0;padding:14px;font:14px Arial,sans-serif;border-radius:0}.rack-picker-dialog .rat-new-form button{background:#e7e7de;color:#111;font:10px monospace;border-radius:0}.rack-picker-dialog .rack-picker-note{font:11px/1.7 Arial,sans-serif;color:#909986}.rack-picker-dialog>[role=status]{font:12px/1.7 Arial,sans-serif}.rack-picker-dialog>[role=status] a{display:inline-block;padding:10px 0;border-bottom:1px solid #ffffff50;font:10px monospace}
.rack-client-likes{display:inline-block;font:9px/1.7 monospace;letter-spacing:.5px;padding:10px 0;border-bottom:1px solid #ffffff25;margin:0 0 16px;color:#b9c0ad}
.reference-assist{margin:-6px 0 22px}.reference-assist p{font:11px/1.7 Arial,sans-serif;color:#aeb6a0;margin:0 0 8px}.reference-assist p:empty{display:none}.studio .reference-assist>button{border:0;border-bottom:1px solid #ffffff30;padding:10px 0;background:none;font:9px/1.6 monospace;letter-spacing:.5px;border-radius:0}.reference-choices{display:flex;gap:8px;flex-wrap:wrap}.studio .reference-choices button{font:11px monospace;overflow-wrap:anywhere;background:#ffffff08;border:1px solid #ffffff30;padding:10px 12px;margin-bottom:12px}.reference-assist button:disabled{opacity:.45;cursor:wait}
