/* One dark palette for every customer and moderator screen. */
:root{--dm-ink:#f0f0ec;--dm-copy:#b8b8b4;--dm-surface:#171717;--dm-stroke:#484848;--muted:var(--dm-copy);--line:var(--dm-stroke)}
body{color:var(--dm-ink)}
body .muted,body .small.muted,.reviews-section .muted,.review-empty p,.page-heading p,.fitting-note,.upload-zone span,.product-pick small,.message small,.mod-list-item p,.mod-item-line p,.status-history time,.stat-card span,.chat-intro,.chat-composer .between{color:var(--dm-copy)}
.page-heading .eyebrow,.catalog-meta>span:last-child,.experience-heading .eyebrow,.experience-heading p,.story-answer>.eyebrow{color:#b8b8b4}
.panel,.blank-state,.mod-empty,.chat-shell,.chat-composer,.upload-zone,.review-result figure,dialog,.photo-viewer,.community{background:var(--dm-surface);color:var(--dm-ink);border-color:var(--dm-stroke)}
.panel h2,.panel h3,.blank-state h2,.mod-empty h3,.chat-intro strong,.community h3,.community-brand>svg,.review-empty h3,.reviews-section h2,.profile-menu a,.profile-menu button{color:var(--dm-ink)}
.notice,.notice.dark{background:#242424;color:#deded8;border-color:#555}
.pill,.pill.soft,.pill.dark,.page-heading .pill,.community .pill,.tab-badge{background:#292929;color:#e2e2dc;border-color:#555;box-shadow:none}
.timeline-step{color:#b0b0ab}.timeline-step::before{background:#484848}.timeline-step.done{color:#f1f1ec}.timeline-step.done::before{background:#e5e5df}
.fitting-step{color:#b8b8b4;border-color:#555}.fitting-step.active{color:#f0f0ec;border-color:#deded8}
.ticket-button.active,.mod-list-item.selected,.product-pick.selected{border-color:#c8c8c2;box-shadow:inset 3px 0 #c8c8c2}
.mod-tabs button.active{color:#f0f0ec;border-color:#e5e5df}
.upload-zone{border-color:#777}.upload-zone strong{color:#f0f0ec}.upload-zone:focus-within{outline-color:#e9e9e3}
.rating-field span{color:#deded8;border-color:#666}.rating-field input:checked+span{background:#eee;color:#111;border-color:#eee}
.form-error{color:#ffaeae}.field input::placeholder,.field textarea::placeholder,.promo-form input::placeholder{color:#aaa;opacity:1}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #ddd;outline-offset:4px}
.profile-menu a,.profile-menu button{min-height:48px}.profile-menu a:hover,.profile-menu button:hover{color:#fff;background:#ffffff08}
.motion-toggle{background:#242424;color:#ecece6;border-color:#777;min-height:44px;padding:10px 16px}
.reviews-section .btn.secondary{background:transparent;color:#eee;border-color:#777}.review-empty .stars{color:#aaa}.review-reply{color:#deded8}
.community{border:1px solid #484848}.community .btn.light{background:#eee;color:#111}
.photo-viewer-controls .btn.secondary{background:#242424;color:#eee;border-color:#777}.review-photo{background:#252525;border-color:#666}.review-photo-number{background:#111;color:#eee}
/* The image and its controls have separate layout boxes; arrows never cover the garment. */
.legacy-card{border:1px solid #444;border-radius:24px;padding:12px;background:#121212;box-shadow:none}
.legacy-card .gallery{aspect-ratio:auto;border-radius:0;background:transparent;overflow:visible;contain:none}
.gallery-media{position:relative;aspect-ratio:4/5;border-radius:17px;overflow:hidden;isolation:isolate;background:#202020}
.gallery-track{height:100%;transition:transform .55s cubic-bezier(.22,1,.36,1);will-change:auto}
.gallery-slide{background:#202020}.gallery-slide img.is-loaded{opacity:1}.gallery-badge{top:12px;left:12px;font-size:10px;letter-spacing:.08em;padding:7px 11px;border:1px solid #ffffff24;background:#171717d9;color:#fff}
.gallery-controls{position:relative;inset:auto;display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 0 2px;pointer-events:auto}
.gallery-controls>[data-dir]{position:static;transform:none;display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid #666;border-radius:50%;background:#222;color:#eee;transition:background .2s,transform .2s}
.gallery-controls>[data-dir]:hover:not(:disabled){background:#383838;transform:translateY(-2px)}.gallery-controls>[data-dir]:disabled{opacity:.35}.gallery-controls>[data-dir] svg{width:18px;height:18px}
.gallery .gallery-dots{position:static;display:flex;gap:0;padding:0;background:transparent;border-radius:0;transform:none}
.gallery .gallery-dots button{width:36px;height:44px;display:grid;place-items:center}.gallery .gallery-dots button::before{width:5px;height:5px;background:#999;border-radius:6px;transition:width .25s,background .25s}.gallery .gallery-dots button[aria-current=true]::before{width:18px;background:#eee}
.product-info{padding:18px 4px 6px}.product-info .actions{gap:8px}.product-info .btn{min-height:46px}.product-info h3{font-size:clamp(19px,2vw,26px)}
.catalog-meta{color:#eee}.motion-hint{color:#bbb}.reviews-section{border:1px solid #363636;padding:32px 24px}.reviews-section .section-head{flex-wrap:wrap;gap:18px}.review-empty{gap:24px}.review-empty p{line-height:1.65}
.footer-row{gap:16px}.footer-row>span{color:#b8b8b4}.footer-row a{color:#deded8;min-height:44px;display:inline-flex;align-items:center}
.form-focused .mobile-nav{transform:translate(-50%,150%);opacity:0;pointer-events:none}.toast{bottom:115px}
/* Finite type reveals and a subtle studio highlight on hover; no continuous text loops. */
.type-waiting .type-char{filter:none;transform:translateY(45%) rotateX(-12deg)}.type-running .type-char{animation:dm-readable-type .55s cubic-bezier(.16,.8,.2,1) both;animation-delay:calc(var(--char)*45ms)}
.cinema-title.type-running .type-char{animation-delay:calc(var(--char)*12ms)}.cinema-title.type-running>span:nth-child(2) .type-char{animation-delay:calc(100ms + var(--char)*12ms)}
@keyframes dm-readable-type{from{opacity:0;transform:translateY(45%) rotateX(-12deg)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.legacy-card:hover{border-color:#818181}.review-card:hover{border-color:#818181}.btn:not(:disabled):hover{transform:translateY(-2px)}.profile-avatar:hover svg{transform:rotateY(18deg)}.profile-avatar svg{transition:transform .35s}.story-answer .type-heading:hover{color:#fff}}
@media(max-width:540px){.catalog-grid{grid-template-columns:1fr;gap:26px}.legacy-card{padding:10px}.legacy-card .gallery-media{aspect-ratio:4/4.6}.product-info .between{display:flex;align-items:baseline;gap:10px}.product-info .price{margin-top:0;white-space:nowrap}.product-info .actions{display:grid;grid-template-columns:1fr 1fr}.product-info .btn{font-size:13px}.reviews-section{padding:28px 18px}.reviews-section .container{padding:0}.review-empty .stars{font-size:26px}.page-heading h1{font-size:clamp(30px,9vw,42px)}.page-heading .type-word{white-space:normal}.type-word{max-width:100%}.profile-grid .panel{min-width:0}.timeline-step{min-width:70px}.mod-tabs{gap:14px}}
@media(max-width:370px){.product-info .between{display:block}.product-info .price{margin-top:8px}.product-info .actions{grid-template-columns:1fr}.mobile-nav a{font-size:9px}.gallery-controls{gap:8px}}
@media(prefers-reduced-motion:reduce){.type-waiting .type-char{opacity:1;transform:none}.type-running .type-char{animation:none}.gallery-track{transition:none}}
[data-motion=calm] .type-char{animation:none!important;opacity:1!important;transform:none!important}
.review-photo-field{background:#202020;color:#eee;border-color:#555}.attach-photos{background:#292929;color:#eee;border-color:#888}.attach-photos:hover{background:#363636}.attach-photos:focus-within{outline-color:#ddd}
.legacy-card .product-info .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.legacy-card .actions .btn{padding:12px 9px;min-height:46px;font-size:13px}
@media(max-width:370px){.legacy-card .product-info .actions{grid-template-columns:1fr}}
.garment-unavailable .garment-controls{display:none}.garment-controls button[disabled]{opacity:.5}
.generation-wait{text-align:center;padding:55px 24px;min-height:360px}.generation-orbit{width:100px;height:100px;border:1px solid #777;border-top:3px solid #fff;border-radius:50%;display:grid;place-items:center;margin:0 auto 30px;font-size:25px;animation:dm-wait 2s ease-in-out infinite}.generation-wait p{color:#c9c9c9;margin:20px 0 28px}.result-photo{display:block;border:0;background:transparent;color:#eee;width:100%;cursor:zoom-in}.result-photo img{display:block;width:100%;max-height:650px;object-fit:contain;border-radius:18px;animation:dm-result .5s ease-out}.result-photo span{display:block;margin:16px}.detail-tools{display:flex;gap:12px;margin:16px 0}.detail-canvas{overflow:auto;max-height:65vh;touch-action:pan-x pan-y;background:#171717}.detail-canvas img{display:block;width:100%;max-width:none;height:auto}.generation-result h2{margin-bottom:20px}@keyframes dm-wait{50%{transform:scale(.94);border-color:#999}}@keyframes dm-result{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.generation-orbit,.result-photo img{animation:none}}


/* Text-labelled navigation keeps the original gallery interactions. */
.gallery-controls>[data-dir],.gallery-arrow,.gallery-control{width:auto;min-width:62px;flex-basis:auto;padding:8px 10px;font-size:12px;line-height:1.2}
