/* v25 — breathing room and short, event-driven feedback. Card artwork is untouched. */
:root{--ui-ease:cubic-bezier(.2,.7,.3,1);--ui-time:160ms}
.controls .upgrade-row{gap:10px;flex-wrap:wrap;align-items:stretch}
.controls .upgrade-row>button{flex:1 1 115px;white-space:normal;line-height:1.5;min-height:42px}
.controls .upgrade-row+.flip-btn{margin-top:12px}
.controls .upgrade-row+.upgrade-row,#saved-projects+.upgrade-row{margin-top:14px}
.saved-row{gap:10px}.saved-row button:last-child{min-width:42px;min-height:42px}
.card-mode-tabs{gap:8px;padding:5px}.mode-tab{display:flex;align-items:center;justify-content:center;min-height:40px;min-width:0;line-height:1.5}
.editor-tabs{gap:8px}.editor-tabs button{white-space:normal;min-width:0;line-height:1.5;min-height:54px}
.editor-reset-row{margin:0 0 5px}#reset-defaults{padding:7px 10px;min-height:34px}
.upgrade-preview-bar{gap:10px;flex-wrap:wrap}.upgrade-preview-bar button{min-height:38px;padding:8px 11px}
.controls .btn-group{gap:10px}.controls .orientation-btn{white-space:normal;line-height:1.5;min-height:42px}
.glam-overlay-presets{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.glam-slot-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.glam-slot-head{grid-column:1/-1;margin-bottom:0;gap:12px}
.glam-slot-row .glam-choose{width:100%;min-width:0;overflow-wrap:anywhere}
.glam-slot-row:not(:has(.glam-remove)) .glam-choose{grid-column:1/-1}
.glam-remove{position:static;min-width:44px;min-height:44px;align-self:center;padding:8px;font-size:11px;border:1px solid #79586055;border-radius:7px}
.glam-dye-options{grid-column:1/-1;gap:10px;margin-top:0}.glam-dye-button{min-height:38px;padding:8px 10px}.glam-muted{grid-column:1/-1}.glam-visible{min-height:36px}
.glam-archive-actions,.hero-actions,.toolbar-secondary,#detail-actions{gap:12px}
#detail-actions>.crystal-random-button,.crystal-section-actions>.crystal-random-button{margin:0}
.crystal-section-head{flex-wrap:wrap;gap:22px}.crystal-section-head>div:first-child{flex:1 1 300px}
.crystal-section-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;max-width:100%}
.crystal-section-actions .crystal-album-open{max-width:100%;min-width:0}
.crystal-media-download{display:inline-flex;align-items:center;min-height:44px;margin-top:2px}
.crystal-social-share,.social-share-links{gap:10px}
.crystal-social-share .social-share-link{min-height:44px}
.album-gear-filter{padding:0 34px;gap:10px;margin:12px 0 0;flex:none}
.album-gear-filter #album-gear-label{min-width:0;overflow-wrap:anywhere}
.album-tools{gap:12px;flex-wrap:wrap}.album-tools .album-search{flex:1 1 240px}
.album-tools select{width:auto;flex:1 1 145px;min-height:42px}
.album-pagination{gap:14px}#album-pages{gap:8px}.page-number{min-width:36px;min-height:40px}
.manage-gear-row{gap:10px;padding:14px 0}.manage-gear-row button{min-height:42px}
.manage-pages,.glam-picker-pages{gap:12px}
.media-filter{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 18px}
.media-filter-label{color:#9dbbca;font-size:12px;flex:none}
.media-filter-options{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.media-filter-options button{box-sizing:border-box;min-height:40px;min-width:64px;padding:8px 14px;border:1px solid #355269;border-radius:9px;background:#0d2032;color:#aac4d4;font:12px/1.5 CardHuninn,system-ui,sans-serif;cursor:pointer}
.media-filter-options button[aria-pressed=true]{color:#e6f7f5;border-color:#8fbec7;background:#254452;box-shadow:inset 0 0 0 1px #a0dee51a}
.media-filter-options button:focus-visible{outline:2px solid #d8c392;outline-offset:3px}
#album-media-filter{flex:none;padding:0 34px;margin:14px 0 0}
.crystal-media-kind{position:absolute;left:10px;top:10px;z-index:1;pointer-events:none;padding:4px 7px;border:1px solid #b6dbe044;border-radius:5px;color:#d7e7ee;background:#091729e8;font:10px/1.4 CardHuninn,system-ui,sans-serif}
.classification-filters{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(190px,1.25fr)}
.classification-filters .dye-filter{grid-column:auto}
.dye-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dye-filter>span{flex-basis:100%;margin-bottom:0}.dye-filter #choose-dye{min-width:0;max-width:100%;white-space:normal}.dye-filter #clear-dye{min-width:44px;margin:0}

/* Animate only controls and entering UI panels, never sliders or exported artwork. */
:is(.controls,.toolbar,.upgrade-preview-bar,.media-filter-options,.crystal-section-actions,.hero-actions,.album-pagination,.glam-archive-actions,.glam-picker-pages,.manage-pages,#detail-actions,#crystal-detail-link,.submission-manager) :is(button,[role=button]),
.social-share-link,.share-primary,#share-copy,.filter-chip,.crystal-close,.close{
 transition:translate var(--ui-time) var(--ui-ease),scale var(--ui-time) var(--ui-ease),background-color var(--ui-time),border-color var(--ui-time),box-shadow var(--ui-time),color var(--ui-time);
 touch-action:manipulation;
}
@media(hover:hover) and (pointer:fine){
 :is(.controls,.toolbar,.upgrade-preview-bar,.media-filter-options,.crystal-section-actions,.hero-actions,.album-pagination,.glam-archive-actions,.glam-picker-pages,.manage-pages,#detail-actions,#crystal-detail-link,.submission-manager) :is(button,[role=button]):not(:disabled):hover,
 .social-share-link:hover,.share-primary:hover,#share-copy:hover,.filter-chip:hover{translate:0 -1px}
}
:is(.controls,.toolbar,.upgrade-preview-bar,.media-filter-options,.crystal-section-actions,.hero-actions,.album-pagination,.glam-archive-actions,.glam-picker-pages,.manage-pages,#detail-actions,#crystal-detail-link,.submission-manager) :is(button,[role=button]):not(:disabled):active,
.social-share-link:active,.share-primary:active,#share-copy:active,.filter-chip:active{translate:0 1px;scale:.985}
.editor-panel:not([hidden]){animation:ui-soft-enter 150ms var(--ui-ease)}
:is(.upgrade-details,#equipment-filters,.extra-slot-filters,.manage-gear-section)[open]>:not(summary){animation:ui-soft-enter 150ms var(--ui-ease)}
:is(#detail,#picker,#glamour-picker,.submission-manager,.crystal-dialog)[open]{animation:ui-soft-enter 170ms var(--ui-ease)}
.gallery>.outfit:not(.gallery-skeleton),.crystal-grid>.crystal-card{animation:ui-soft-enter 190ms var(--ui-ease)}
#upgrade-toast:not([hidden]),#toast:not([hidden]){animation:ui-soft-enter 150ms var(--ui-ease)}
@keyframes ui-soft-enter{from{opacity:.65;translate:0 4px}to{opacity:1;translate:0 0}}
@media(max-width:1000px){.classification-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
 .upgrade-preview-bar{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:10px}
 .upgrade-preview-bar>span:first-child{margin-right:auto;white-space:normal;flex:1 1 60px}
 .upgrade-preview-bar button{min-height:40px;font-size:11px;padding:7px 10px;white-space:normal;line-height:1.4}
 .controls .flip-btn{min-height:44px}.card-mode-tabs{gap:7px}
}
@media(max-width:700px){
 .crystal-section-head>div:first-child{flex-basis:auto}.crystal-section-actions{display:grid;grid-template-columns:1fr;width:100%;gap:12px}
 .crystal-section-actions>*{width:100%}.crystal-section-actions .crystal-album-open{justify-content:space-between}
 .media-filter{gap:9px;align-items:flex-start;flex-direction:column}.media-filter-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}
 .media-filter-options button{padding:8px 4px;min-width:0;min-height:44px}
 #album-media-filter{padding:0 16px;margin-top:12px;gap:7px}
 .album-tools{gap:10px}.album-tools select{flex:1 1 160px;min-height:44px}.album-tools .crystal-button{min-height:44px;padding:8px 16px}
 .album-gear-filter{padding:0 16px;margin-top:10px;gap:10px}.album-gear-filter button{white-space:normal;min-height:44px}
 .album-pagination{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom))}
 #album-pages{grid-column:1/-1;grid-row:1;gap:6px}.page-number{min-width:40px;min-height:40px}
 #album-prev{grid-column:1;grid-row:2}#album-next{grid-column:2;grid-row:2}.album-pagination .crystal-button{min-height:42px;font-size:11px}
 #detail-actions{gap:12px}#detail-actions>button,#detail-actions>a{flex:1 1 135px;white-space:normal;line-height:1.5}
 #detail-actions>.crystal-social-share{flex-basis:100%;padding:16px 0 0}
 .toolbar-secondary button{flex:1 1 125px;white-space:normal}.toolbar-secondary .text-button{margin-left:0}
 .filter-chips{gap:9px}.filter-chip{min-height:42px}
 .glam-dye-button{min-height:42px}.glam-visible{min-height:40px}
}
@media(max-width:360px){
 .upgrade-preview-bar>span:first-child{flex-basis:100%;font-size:11px}
 .upgrade-preview-bar button{flex:1 1 65px;padding:7px 4px}
 .editor-header{padding-left:10px;padding-right:10px}.editor-tabs{gap:6px}.editor-tabs button{font-size:10px}
 .classification-filters{gap:12px}.classification-filters .dye-filter{grid-column:1/-1}
 .social-share-link{white-space:normal;text-align:center}
}
/* Respect both the OS preference and the site's existing Reduce motion switch. */
body[data-motion=reduced] :is(.controls,.toolbar,.upgrade-preview-bar,.media-filter-options,.crystal-section-actions,.hero-actions,.album-pagination,.glam-archive-actions,.glam-picker-pages,.manage-pages,#detail-actions,#crystal-detail-link,.submission-manager) :is(button,[role=button]),
body[data-motion=reduced] :is(.social-share-link,.share-primary,#share-copy,.filter-chip,.crystal-close,.close){transition:none!important;translate:none!important;scale:none!important}
body[data-motion=reduced] :is(.editor-panel,.upgrade-details>*,#equipment-filters>*,.extra-slot-filters>*,.manage-gear-section>*,dialog,.outfit,.crystal-card,#toast,#upgrade-toast){animation:none!important}
@media(prefers-reduced-motion:reduce){
 :is(.controls,.toolbar,.upgrade-preview-bar,.media-filter-options,.crystal-section-actions,.hero-actions,.album-pagination,.glam-archive-actions,.glam-picker-pages,.manage-pages,#detail-actions,#crystal-detail-link,.submission-manager) :is(button,[role=button]),
 .social-share-link,.share-primary,#share-copy,.filter-chip,.crystal-close,.close{transition:none!important;translate:none!important;scale:none!important}
 :is(.editor-panel,.upgrade-details>*,#equipment-filters>*,.extra-slot-filters>*,.manage-gear-section>*,dialog,.outfit,.crystal-card,#toast,#upgrade-toast){animation:none!important}
}

#recent-gallery[aria-busy=true]{opacity:.6;pointer-events:none}

/* Main settings stay visible, at the same hierarchy as the character fields. */
.editor-setting-group{margin:26px 0 24px;min-width:0}
.controls .editor-setting-title{font:400 .9em/1.7 'Orbitron',CardHuninn,sans-serif;letter-spacing:1px;color:var(--accent-cyan);margin:0 0 14px;padding:0;border:0}
.editor-setting-group>.form-group:last-child{margin-bottom:0}
.orientation-btn[hidden]{display:none!important}
@media(min-width:901px){.maker-layout>.controls{height:var(--editor-panel-height,1100px);max-height:none;overflow-y:auto}}
@media(max-width:900px){.maker-layout>.controls{height:auto;max-height:none}}

/* v29 — URL fields use the editor's normal dark input palette. */
.controls input[type=url]{color-scheme:dark;min-width:0;box-sizing:border-box}
.controls input[type=url]::placeholder{color:#8b9ead;opacity:1}
.controls input[type=url]:-webkit-autofill{-webkit-text-fill-color:#fff;-webkit-box-shadow:0 0 0 1000px #0a1422 inset;caret-color:#fff}

/* v30 — equal touch targets for the solid social buttons on every page. */
#crystal-detail-link .social-share-link,.crystal-social-share>a.social-share-link,.social-share-links>a.social-share-link{min-height:52px;padding:12px 14px}
