/* Perfil ilustrativo: cores de intervenção, contornos e leitura permanecem no quadro final. */
.cutfill-study { min-width: 0; width: 100%; }
.cutfill-study__labels { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cutfill-study__labels strong { display: flex; align-items: center; gap: 9px; color: #fff; font-size: 16px; line-height: 1.4; }
.cutfill-study__labels span { display: block; margin-top: 4px; color: #eee4d9; font-size: 12px; line-height: 1.5; }
.cutfill-key { display: inline-block; flex: none; width: 10px; height: 10px; }
.cutfill-key--cut { background: #cf8833; }
.cutfill-key--fill { background: #8ca64b; }
.cutfill-study .cutfill { margin-top: 8px; overflow: hidden; }
.cutfill-study .cutfill__soil { fill: #785538; }
.cutfill-study .cutfill__stratum { fill: #67472f; }
.cutfill-study .cutfill__seam { fill: none; stroke: #a1805a; stroke-width: 1; opacity: .55; }
.cutfill-study .cutfill__cut { fill: #cf8833; fill-opacity: .86; }
.cutfill-study .cutfill__fill { fill: #8ca64b; fill-opacity: .88; }
.cutfill-study .cutfill__original { fill: none; stroke: #f3d7b3; stroke-width: 1.6; stroke-dasharray: 5 5; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.cutfill-study .cutfill__level { fill: none; stroke: #fff9ed; stroke-width: 2; vector-effect: non-scaling-stroke; }
.cutfill-study .cutfill__ticks { fill: none; stroke: #fff9ed; stroke-width: 1; vector-effect: non-scaling-stroke; }
.cutfill-study .cutfill__arrow { fill: none; stroke: #e4c49c; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.cutfill-study__legend { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 16px; }
.cutfill-study__legend span { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; line-height: 1.5; color: #fff9ed; }
.cutfill-line { width: 22px; border-top: 2px solid #fff9ed; }
.cutfill-line--original { border-top: 2px dashed #f3d7b3; }
.cutfill-study__footer { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 18px; margin-top: 6px; }
.cutfill-study .cutfill-study__note { margin: 0; color: #d8c3ad; font-size: 12px; line-height: 1.5; }
.cutfill-study__replay { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: #f5e9d9; font: inherit; font-size: 12px; cursor: pointer; }
.cutfill-study__replay[hidden] { display: none; }
.cutfill-study__replay:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.cutfill-study__replay:focus-visible { outline: 2px solid #f5e9d9; outline-offset: 4px; }
.cutfill-study__replay:disabled { cursor: default; opacity: .55; text-decoration: none; }
/* Só a classe adicionada em viewport inicia a sequência; o padrão é estático. */
.cutfill-study.is-cutfill-playing .cutfill__soil { animation: cutfill-settle 1.35s .2s cubic-bezier(.22,.68,.22,1) both; }
.cutfill-study.is-cutfill-playing .cutfill__stratum { animation: cutfill-settle 1.4s .65s cubic-bezier(.22,.68,.22,1) both; }
.cutfill-study.is-cutfill-playing .cutfill__cut { animation: cutfill-settle 1.45s 1.1s cubic-bezier(.22,.68,.22,1) both; }
.cutfill-study.is-cutfill-playing .cutfill__fill { animation: cutfill-settle 1.5s 1.85s cubic-bezier(.22,.68,.22,1) both; }
.cutfill-study.is-cutfill-playing .cutfill__seam,
.cutfill-study.is-cutfill-playing .cutfill__original,
.cutfill-study.is-cutfill-playing .cutfill__ticks { animation: cutfill-appear .6s 3.25s both; }
.cutfill-study.is-cutfill-playing .cutfill__transfer { animation: cutfill-appear .6s 3.4s both; }
.cutfill-study.is-cutfill-playing .cutfill__level { animation: cutfill-level .6s 3.25s both; }
.cutfill-study.is-cutfill-playing .cutfill-study__labels,
.cutfill-study.is-cutfill-playing .cutfill-study__legend { animation: cutfill-caption .65s 3.75s both; }
@keyframes cutfill-settle { from { transform: translateY(-280px); } to { transform: translateY(0); } }
@keyframes cutfill-appear { from { opacity: 0; } to { opacity: 1; } }
@keyframes cutfill-caption { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cutfill-level { from { stroke-dasharray: 100; stroke-dashoffset: 100; } to { stroke-dasharray: 100; stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .cutfill-study.is-cutfill-playing * { animation: none; }
  .cutfill-study__replay { display: none; }
}
